{
  "contractName": "SaleStatusWidgetRenderer",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "SALE_STATUS",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "STARTED",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "FINISHED_DESC",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "SUCCESSFUL",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "STARTED_DESC",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "SHORT_DESC",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "LONG_DESC",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "FINISHED",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "ACTIVATED",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "locale",
          "type": "string"
        },
        {
          "name": "key",
          "type": "string"
        },
        {
          "name": "value",
          "type": "string"
        }
      ],
      "name": "setResource",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "locale",
          "type": "string"
        },
        {
          "name": "key",
          "type": "string"
        }
      ],
      "name": "resource",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "ACTIVATED_DESC",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "SUCCESSFUL_DESC",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipRenounced",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_locale",
          "type": "string"
        },
        {
          "name": "_sale",
          "type": "address"
        }
      ],
      "name": "render",
      "outputs": [
        {
          "name": "",
          "type": "string"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405260008054600160a060020a03191633179055612d1f806100256000396000f3006080604052600436106100d75763ffffffff60e060020a6000350416630a82f53b81146100dc5780631be35a591461016657806353e957211461017b5780636e21759914610190578063715018a6146101a557806385df338a146101bc5780638b582712146101d15780638da5cb5b146101e6578063ac5c6e1214610217578063b54e5e8f1461022c578063ca1a70be14610241578063d5db8135146102a5578063ed3487fe146102ba578063f2fde38b1461038f578063f65a5c1b146103b0578063fe3d32a514610447578063fff9844a1461045c575b600080fd5b3480156100e857600080fd5b506100f1610471565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012b578181015183820152602001610113565b50505050905090810190601f1680156101585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017257600080fd5b506100f16104a8565b34801561018757600080fd5b506100f16104df565b34801561019c57600080fd5b506100f1610516565b3480156101b157600080fd5b506101ba61054d565b005b3480156101c857600080fd5b506100f16105b9565b3480156101dd57600080fd5b506100f16105f0565b3480156101f257600080fd5b506101fb610627565b60408051600160a060020a039092168252519081900360200190f35b34801561022357600080fd5b506100f1610636565b34801561023857600080fd5b506100f161066d565b34801561024d57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100f194369492936024939284019190819084018382808284375094975050509235600160a060020a031693506106a492505050565b3480156102b157600080fd5b506100f1611842565b3480156102c657600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101ba94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506118799650505050505050565b34801561039b57600080fd5b506101ba600160a060020a0360043516611966565b3480156103bc57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100f194369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506119899650505050505050565b34801561045357600080fd5b506100f1611ada565b34801561046857600080fd5b506100f1611b11565b60408051808201909152600b81527f73616c655f737461747573000000000000000000000000000000000000000000602082015281565b60408051808201909152600781527f7374617274656400000000000000000000000000000000000000000000000000602082015281565b60408051808201909152600d81527f66696e69736865645f6465736300000000000000000000000000000000000000602082015281565b60408051808201909152600a81527f7375636365737366756c00000000000000000000000000000000000000000000602082015281565b600054600160a060020a0316331461056457600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60408051808201909152600c81527f737461727465645f646573630000000000000000000000000000000000000000602082015281565b60408051808201909152600a81527f73686f72745f6465736300000000000000000000000000000000000000000000602082015281565b600054600160a060020a031681565b60408051808201909152600981527f6c6f6e675f646573630000000000000000000000000000000000000000000000602082015281565b60408051808201909152600881527f66696e6973686564000000000000000000000000000000000000000000000000602082015281565b6060806060806106b2612b44565b85600160a060020a031663186601ca6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050506040513d602081101561071a57600080fd5b5051156118265785600160a060020a031663bef4876b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561075f57600080fd5b505af1158015610773573d6000803e3d6000fd5b505050506040513d602081101561078957600080fd5b505115610a85576001876040518082805190602001908083835b602083106107c25780518252601f1990920191602091820191016107a3565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260088087527f66696e697368656400000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b6020831061084d5780518252601f19909201916020918201910161082e565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156109015780601f106108d657610100808354040283529160200191610901565b820191906000526020600020905b8154815290600101906020018083116108e457829003601f168201915b505050505093506001876040518082805190602001908083835b6020831061093a5780518252601f19909201916020918201910161091b565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600d8087527f66696e69736865645f646573630000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106109c55780518252601f1990920191602091820191016109a6565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610a795780601f10610a4e57610100808354040283529160200191610a79565b820191906000526020600020905b815481529060010190602001808311610a5c57829003601f168201915b50505050509250611288565b85600160a060020a0316639a9e3fd86040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ac357600080fd5b505af1158015610ad7573d6000803e3d6000fd5b505050506040513d6020811015610aed57600080fd5b505115610d0e576001876040518082805190602001908083835b60208310610b265780518252601f199092019160209182019101610b07565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600a8087527f7375636365737366756c0000000000000000000000000000000000000000000093870193845291519095945092508291908083835b60208310610bb15780518252601f199092019160209182019101610b92565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c655780601f10610c3a57610100808354040283529160200191610c65565b820191906000526020600020905b815481529060010190602001808311610c4857829003601f168201915b505050505093506001876040518082805190602001908083835b60208310610c9e5780518252601f199092019160209182019101610c7f565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600f8087527f7375636365737366756c5f64657363000000000000000000000000000000000093870193845291519095945092508291908083836109c5565b85600160a060020a0316631f2698ab6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610d4c57600080fd5b505af1158015610d60573d6000803e3d6000fd5b505050506040513d6020811015610d7657600080fd5b505115610f97576001876040518082805190602001908083835b60208310610daf5780518252601f199092019160209182019101610d90565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260078087527f737461727465640000000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b60208310610e3a5780518252601f199092019160209182019101610e1b565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610eee5780601f10610ec357610100808354040283529160200191610eee565b820191906000526020600020905b815481529060010190602001808311610ed157829003601f168201915b505050505093506001876040518082805190602001908083835b60208310610f275780518252601f199092019160209182019101610f08565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600c8087527f737461727465645f64657363000000000000000000000000000000000000000093870193845291519095945092508291908083836109c5565b6001876040518082805190602001908083835b60208310610fc95780518252601f199092019160209182019101610faa565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260098087527f616374697661746564000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106110545780518252601f199092019160209182019101611035565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156111085780601f106110dd57610100808354040283529160200191611108565b820191906000526020600020905b8154815290600101906020018083116110eb57829003601f168201915b505050505093506001876040518082805190602001908083835b602083106111415780518252601f199092019160209182019101611122565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600e8087527f6163746976617465645f6465736300000000000000000000000000000000000093870193845291519095945092508291908083835b602083106111cc5780518252601f1990920191602091820191016111ad565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156112805780601f1061125557610100808354040283529160200191611280565b820191906000526020600020905b81548152906001019060200180831161126357829003601f168201915b505050505092505b60408051600180825281830190925290816020015b6112a5612b74565b81526020019060019003908161129d57905050915060e0604051908101604052806001151581526020016040805190810160405280600b81526020017f73616c655f73746174757300000000000000000000000000000000000000000081525081526020016040805190810160405280600481526020017f7465787400000000000000000000000000000000000000000000000000000000815250815260200185815260200161135485611b48565b8152602001611361611bbd565b815260200161136e611c10565b905282518390600090811061137f57fe5b9060200190602002018190525060a0604051908101604052806001896040518082805190602001908083835b602083106113ca5780518252601f1990920191602091820191016113ab565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600b8087527f73616c655f73746174757300000000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106114555780518252601f199092019160209182019101611436565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156115095780601f106114de57610100808354040283529160200191611509565b820191906000526020600020905b8154815290600101906020018083116114ec57829003601f168201915b505050505081526020016001896040518082805190602001908083835b602083106115455780518252601f199092019160209182019101611526565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600a8087527f73686f72745f646573630000000000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106115d05780518252601f1990920191602091820191016115b1565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156116845780601f1061165957610100808354040283529160200191611684565b820191906000526020600020905b81548152906001019060200180831161166757829003601f168201915b505050505081526020016001896040518082805190602001908083835b602083106116c05780518252601f1990920191602091820191016116a1565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260098087527f6c6f6e675f64657363000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b6020831061174b5780518252601f19909201916020918201910161172c565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156117ff5780601f106117d4576101008083540402835291602001916117ff565b820191906000526020600020905b8154815290600101906020018083116117e257829003601f168201915b505050505081526020016004815260200183815250905061181f81611c9d565b9450611838565b60408051602081019091526000815294505b5050505092915050565b60408051808201909152600981527f6163746976617465640000000000000000000000000000000000000000000000602082015281565b600054600160a060020a0316331461189057600080fd5b806001846040518082805190602001908083835b602083106118c35780518252601f1990920191602091820191016118a4565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842087519094889450925082918401908083835b6020831061191f5780518252601f199092019160209182019101611900565b51815160209384036101000a600019018019909216911617905292019485525060405193849003810190932084516119609591949190910192509050612bc0565b50505050565b600054600160a060020a0316331461197d57600080fd5b61198681611efa565b50565b60606001836040518082805190602001908083835b602083106119bd5780518252601f19909201916020918201910161199e565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842086519094879450925082918401908083835b60208310611a195780518252601f1990920191602091820191016119fa565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015611acd5780601f10611aa257610100808354040283529160200191611acd565b820191906000526020600020905b815481529060010190602001808311611ab057829003601f168201915b5050505050905092915050565b60408051808201909152600e81527f6163746976617465645f64657363000000000000000000000000000000000000602082015281565b60408051808201909152600f81527f7375636365737366756c5f646573630000000000000000000000000000000000602082015281565b6060611bb7611b7260408051908101604052806001815260200160f960020a601102815250611f77565b611ba6611bb2611b8186611f77565b611ba660408051908101604052806001815260200160f960020a601102815250611f77565b9063ffffffff611fa016565b611f77565b92915050565b611bc5612c3e565b506040805160a0810182526000808252602080830182905283518082018552828152838501528351808201855282815260608401528351908101909352825260808101919091525b90565b611c18612c6b565b60408051606081018252600080825282518181526020818101909452919283019190611c5a565b611c47612c8f565b815260200190600190039081611c3f5790505b5081526020016000604051908082528060200260200182016040528015611c9557816020015b6060815260200190600190039081611c805790505b509052905090565b60408051808201909152600a81527f7b227469746c65223a22000000000000000000000000000000000000000000006020820152815160609190600090611cf090611ce790611f77565b611ba684611f77565b9150611d33611ce76040805190810160405280600f81526020017f222c2273686f727444657363223a220000000000000000000000000000000000815250611f77565b9150611d45611ce78560200151611f77565b9150611d88611ce76040805190810160405280600e81526020017f222c226c6f6e6744657363223a22000000000000000000000000000000000000815250611f77565b9150611d9a611ce78560400151611f77565b9150611ddd611ce76040805190810160405280600a81526020017f222c227769647468223a00000000000000000000000000000000000000000000815250611f77565b9150611df2611ce7611bb28660600151612017565b9150611e35611ce76040805190810160405280600d81526020017f2c22656c656d656e7473223a5b00000000000000000000000000000000000000815250611f77565b9150600090505b836080015151811015611eb1576000811115611e7d57611e7a611ce760408051908101604052806001815260200160fa60020a600b02815250611f77565b91505b611ea7611ce7611bb2866080015184815181101515611e9857fe5b90602001906020020151612176565b9150600101611e3c565b611ef2611ce76040805190810160405280600281526020017f5d7d000000000000000000000000000000000000000000000000000000000000815250611f77565b949350505050565b600160a060020a0381161515611f0f57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b611f7f612cc2565b50604080518082019091528151815260208281019082018190525b50919050565b606080600083600001518560000151016040519080825280601f01601f191660200182016040528015611fdd578160200160208202803883390190505b509150602082019050611ff9818660200151876000015161244b565b84516020850151855161200f928401919061244b565b509392505050565b606080600081818515156120605760408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152945061216d565b6040805160208082528183019092529080820161040080388339019050509350600092505b60008611156120d257600a860660300160f860020a0284848151811015156120a957fe5b906020010190600160f860020a031916908160001a905350600a86049550600190920191612085565b60408051848152601f19601f86011681016020019091526000198401938015612105578160200160208202803883390190505b509150600090505b81518110156121695783516000198401938591811061212857fe5b90602001015160f860020a900460f860020a02828281518110151561214957fe5b906020010190600160f860020a031916908160001a90535060010161210d565b8194505b50505050919050565b606080826000015115612410576040805190810160405280600781526020017f7b226964223a220000000000000000000000000000000000000000000000000081525090506121d46121cb8460200151611f77565b611ba683611f77565b90506121fe6121cb60408051908101604052806001815260200160f960020a601102815250611f77565b60a084015151909150156122655761224d6121cb6040805190810160405280600b81526020017f2c2022616374696f6e223a000000000000000000000000000000000000000000815250611f77565b90506122626121cb611bb28560a0015161248f565b90505b60c083015151156122c9576122b16121cb6040805190810160405280600a81526020017f2c20227461626c65223a00000000000000000000000000000000000000000000815250611f77565b90506122c66121cb611bb28560c00151612632565b90505b61230a6121cb6040805190810160405280600981526020017f2c2274797065223a220000000000000000000000000000000000000000000000815250611f77565b905061231c6121cb8460400151611f77565b905061235f6121cb6040805190810160405280600b81526020017f222c226c6162656c223a22000000000000000000000000000000000000000000815250611f77565b90506123716121cb8460600151611f77565b90506123b46121cb6040805190810160405280600981526020017f222c2264617461223a0000000000000000000000000000000000000000000000815250611f77565b90506123c66121cb8460800151611f77565b90506124096121cb6040805190810160405280600181526020017f7d00000000000000000000000000000000000000000000000000000000000000815250611f77565b9150611f9a565b60408051808201909152600481527f6e756c6c0000000000000000000000000000000000000000000000000000000060208201529150611f9a565b60005b60208210612470578251845260209384019390920191601f199091019061244e565b50905182516020929092036101000a6000190180199091169116179052565b606080826000015115612410576040805190810160405280600c81526020017f7b2261646472657373223a22000000000000000000000000000000000000000081525090506124f06121cb611bb28560200151600160a060020a0316612849565b90506125336121cb6040805190810160405280601681526020017f222c2266756e6374696f6e53656c6563746f72223a2200000000000000000000815250611f77565b90506125456121cb8460400151611f77565b90506125886121cb6040805190810160405280600e81526020017f222c22617267756d656e7473223a000000000000000000000000000000000000815250611f77565b905061259a6121cb8460600151611f77565b90506125dd6121cb6040805190810160405280600c81526020017f2c22636f6e6669726d223a220000000000000000000000000000000000000000815250611f77565b90506125ef6121cb8460800151611f77565b90506124096121cb6040805190810160405280600281526020017f227d000000000000000000000000000000000000000000000000000000000000815250611f77565b60608060008084600001511561280a57505060408051808201909152600c81527f7b22636f6c756d6e73223a5b0000000000000000000000000000000000000000602082015290506000805b8460200151518110156127005760008211156126c8576126c56126bc60408051908101604052806001815260200160fa60020a600b02815250611f77565b611ba685611f77565b92505b6126f26126bc611bb28760200151848151811015156126e357fe5b9060200190602002015161298c565b92506001918201910161267e565b6127416126bc6040805190810160405280600a81526020017f5d2c22726f7773223a5b00000000000000000000000000000000000000000000815250611f77565b925060009150600090505b8460400151518110156127c257600082111561278d5761278a6126bc60408051908101604052806001815260200160fa60020a600b02815250611f77565b92505b6127b46126bc8660400151838151811015156127a557fe5b90602001906020020151611f77565b92506001918201910161274c565b6128036126bc6040805190810160405280600281526020017f5d7d000000000000000000000000000000000000000000000000000000000000815250611f77565b9350612841565b60408051808201909152600481527f6e756c6c00000000000000000000000000000000000000000000000000000000602082015293505b505050919050565b60408051602a80825260608083019093528291600091829182916020820161054080388339505081519195507f30000000000000000000000000000000000000000000000000000000000000009186915060009081106128a557fe5b906020010190600160f860020a031916908160001a90535083517f780000000000000000000000000000000000000000000000000000000000000090859060019081106128ee57fe5b906020010190600160f860020a031916908160001a905350859250600091505b602882101561298257506030600f8316016039600160a060020a0382161115612935576027015b8060f860020a02848360280360010181518110151561295057fe5b906020010190600160f860020a031916908160001a9053506010600160a060020a03841604925060019091019061290e565b5091949350505050565b606080826000015115612410576040805190810160405280600781526020017f7b226964223a220000000000000000000000000000000000000000000000000081525090506129e16121cb8460200151611f77565b9050612a0b6121cb60408051908101604052806001815260200160f960020a601102815250611f77565b60808401515190915015612a9c57612a416121cb60408051908101604052806001815260200160fa60020a600b02815250611f77565b9050612a846121cb6040805190810160405280600981526020017f22616374696f6e223a0000000000000000000000000000000000000000000000815250611f77565b9050612a996121cb611bb2856080015161248f565b90505b612add6121cb6040805190810160405280600981526020017f2c2274797065223a220000000000000000000000000000000000000000000000815250611f77565b9050612aef6121cb8460400151611f77565b9050612b326121cb6040805190810160405280600b81526020017f222c226c6162656c223a22000000000000000000000000000000000000000000815250611f77565b90506125ef6121cb8460600151611f77565b60a06040519081016040528060608152602001606081526020016060815260200160008152602001606081525090565b6101a06040519081016040528060001515815260200160608152602001606081526020016060815260200160608152602001612bae612c3e565b8152602001612bbb612c6b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612c0157805160ff1916838001178555612c2e565b82800160010185558215612c2e579182015b82811115612c2e578251825591602001919060010190612c13565b50612c3a929150612cd9565b5090565b6040805160a081018252600080825260208201526060918101829052818101829052608081019190915290565b60606040519081016040528060001515815260200160608152602001606081525090565b61012060405190810160405280600015158152602001606081526020016060815260200160608152602001612bbb612c3e565b604080518082019091526000808252602082015290565b611c0d91905b80821115612c3a5760008155600101612cdf5600a165627a7a72305820f797632e1ccbfe8563beaa28e5c93c54b9fb039516be6784ca2b72cd92c858700029",
  "deployedBytecode": "0x6080604052600436106100d75763ffffffff60e060020a6000350416630a82f53b81146100dc5780631be35a591461016657806353e957211461017b5780636e21759914610190578063715018a6146101a557806385df338a146101bc5780638b582712146101d15780638da5cb5b146101e6578063ac5c6e1214610217578063b54e5e8f1461022c578063ca1a70be14610241578063d5db8135146102a5578063ed3487fe146102ba578063f2fde38b1461038f578063f65a5c1b146103b0578063fe3d32a514610447578063fff9844a1461045c575b600080fd5b3480156100e857600080fd5b506100f1610471565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561012b578181015183820152602001610113565b50505050905090810190601f1680156101585780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561017257600080fd5b506100f16104a8565b34801561018757600080fd5b506100f16104df565b34801561019c57600080fd5b506100f1610516565b3480156101b157600080fd5b506101ba61054d565b005b3480156101c857600080fd5b506100f16105b9565b3480156101dd57600080fd5b506100f16105f0565b3480156101f257600080fd5b506101fb610627565b60408051600160a060020a039092168252519081900360200190f35b34801561022357600080fd5b506100f1610636565b34801561023857600080fd5b506100f161066d565b34801561024d57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100f194369492936024939284019190819084018382808284375094975050509235600160a060020a031693506106a492505050565b3480156102b157600080fd5b506100f1611842565b3480156102c657600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526101ba94369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a99988101979196509182019450925082915084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506118799650505050505050565b34801561039b57600080fd5b506101ba600160a060020a0360043516611966565b3480156103bc57600080fd5b506040805160206004803580820135601f81018490048402850184019095528484526100f194369492936024939284019190819084018382808284375050604080516020601f89358b018035918201839004830284018301909452808352979a9998810197919650918201945092508291508401838280828437509497506119899650505050505050565b34801561045357600080fd5b506100f1611ada565b34801561046857600080fd5b506100f1611b11565b60408051808201909152600b81527f73616c655f737461747573000000000000000000000000000000000000000000602082015281565b60408051808201909152600781527f7374617274656400000000000000000000000000000000000000000000000000602082015281565b60408051808201909152600d81527f66696e69736865645f6465736300000000000000000000000000000000000000602082015281565b60408051808201909152600a81527f7375636365737366756c00000000000000000000000000000000000000000000602082015281565b600054600160a060020a0316331461056457600080fd5b60008054604051600160a060020a03909116917ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482091a26000805473ffffffffffffffffffffffffffffffffffffffff19169055565b60408051808201909152600c81527f737461727465645f646573630000000000000000000000000000000000000000602082015281565b60408051808201909152600a81527f73686f72745f6465736300000000000000000000000000000000000000000000602082015281565b600054600160a060020a031681565b60408051808201909152600981527f6c6f6e675f646573630000000000000000000000000000000000000000000000602082015281565b60408051808201909152600881527f66696e6973686564000000000000000000000000000000000000000000000000602082015281565b6060806060806106b2612b44565b85600160a060020a031663186601ca6040518163ffffffff1660e060020a028152600401602060405180830381600087803b1580156106f057600080fd5b505af1158015610704573d6000803e3d6000fd5b505050506040513d602081101561071a57600080fd5b5051156118265785600160a060020a031663bef4876b6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561075f57600080fd5b505af1158015610773573d6000803e3d6000fd5b505050506040513d602081101561078957600080fd5b505115610a85576001876040518082805190602001908083835b602083106107c25780518252601f1990920191602091820191016107a3565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260088087527f66696e697368656400000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b6020831061084d5780518252601f19909201916020918201910161082e565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156109015780601f106108d657610100808354040283529160200191610901565b820191906000526020600020905b8154815290600101906020018083116108e457829003601f168201915b505050505093506001876040518082805190602001908083835b6020831061093a5780518252601f19909201916020918201910161091b565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600d8087527f66696e69736865645f646573630000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106109c55780518252601f1990920191602091820191016109a6565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610a795780601f10610a4e57610100808354040283529160200191610a79565b820191906000526020600020905b815481529060010190602001808311610a5c57829003601f168201915b50505050509250611288565b85600160a060020a0316639a9e3fd86040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610ac357600080fd5b505af1158015610ad7573d6000803e3d6000fd5b505050506040513d6020811015610aed57600080fd5b505115610d0e576001876040518082805190602001908083835b60208310610b265780518252601f199092019160209182019101610b07565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600a8087527f7375636365737366756c0000000000000000000000000000000000000000000093870193845291519095945092508291908083835b60208310610bb15780518252601f199092019160209182019101610b92565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610c655780601f10610c3a57610100808354040283529160200191610c65565b820191906000526020600020905b815481529060010190602001808311610c4857829003601f168201915b505050505093506001876040518082805190602001908083835b60208310610c9e5780518252601f199092019160209182019101610c7f565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600f8087527f7375636365737366756c5f64657363000000000000000000000000000000000093870193845291519095945092508291908083836109c5565b85600160a060020a0316631f2698ab6040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610d4c57600080fd5b505af1158015610d60573d6000803e3d6000fd5b505050506040513d6020811015610d7657600080fd5b505115610f97576001876040518082805190602001908083835b60208310610daf5780518252601f199092019160209182019101610d90565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260078087527f737461727465640000000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b60208310610e3a5780518252601f199092019160209182019101610e1b565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015610eee5780601f10610ec357610100808354040283529160200191610eee565b820191906000526020600020905b815481529060010190602001808311610ed157829003601f168201915b505050505093506001876040518082805190602001908083835b60208310610f275780518252601f199092019160209182019101610f08565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600c8087527f737461727465645f64657363000000000000000000000000000000000000000093870193845291519095945092508291908083836109c5565b6001876040518082805190602001908083835b60208310610fc95780518252601f199092019160209182019101610faa565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260098087527f616374697661746564000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106110545780518252601f199092019160209182019101611035565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156111085780601f106110dd57610100808354040283529160200191611108565b820191906000526020600020905b8154815290600101906020018083116110eb57829003601f168201915b505050505093506001876040518082805190602001908083835b602083106111415780518252601f199092019160209182019101611122565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600e8087527f6163746976617465645f6465736300000000000000000000000000000000000093870193845291519095945092508291908083835b602083106111cc5780518252601f1990920191602091820191016111ad565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156112805780601f1061125557610100808354040283529160200191611280565b820191906000526020600020905b81548152906001019060200180831161126357829003601f168201915b505050505092505b60408051600180825281830190925290816020015b6112a5612b74565b81526020019060019003908161129d57905050915060e0604051908101604052806001151581526020016040805190810160405280600b81526020017f73616c655f73746174757300000000000000000000000000000000000000000081525081526020016040805190810160405280600481526020017f7465787400000000000000000000000000000000000000000000000000000000815250815260200185815260200161135485611b48565b8152602001611361611bbd565b815260200161136e611c10565b905282518390600090811061137f57fe5b9060200190602002018190525060a0604051908101604052806001896040518082805190602001908083835b602083106113ca5780518252601f1990920191602091820191016113ab565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600b8087527f73616c655f73746174757300000000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106114555780518252601f199092019160209182019101611436565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156115095780601f106114de57610100808354040283529160200191611509565b820191906000526020600020905b8154815290600101906020018083116114ec57829003601f168201915b505050505081526020016001896040518082805190602001908083835b602083106115455780518252601f199092019160209182019101611526565b51815160209384036101000a60001901801990921691161790529201948552506040805194859003820185208582018252600a8087527f73686f72745f646573630000000000000000000000000000000000000000000093870193845291519095945092508291908083835b602083106115d05780518252601f1990920191602091820191016115b1565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156116845780601f1061165957610100808354040283529160200191611684565b820191906000526020600020905b81548152906001019060200180831161166757829003601f168201915b505050505081526020016001896040518082805190602001908083835b602083106116c05780518252601f1990920191602091820191016116a1565b51815160209384036101000a6000190180199092169116179052920194855250604080519485900382018520858201825260098087527f6c6f6e675f64657363000000000000000000000000000000000000000000000093870193845291519095945092508291908083835b6020831061174b5780518252601f19909201916020918201910161172c565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f60026001831615909802909501169590950492830182900482028801820190528187529294509250508301828280156117ff5780601f106117d4576101008083540402835291602001916117ff565b820191906000526020600020905b8154815290600101906020018083116117e257829003601f168201915b505050505081526020016004815260200183815250905061181f81611c9d565b9450611838565b60408051602081019091526000815294505b5050505092915050565b60408051808201909152600981527f6163746976617465640000000000000000000000000000000000000000000000602082015281565b600054600160a060020a0316331461189057600080fd5b806001846040518082805190602001908083835b602083106118c35780518252601f1990920191602091820191016118a4565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842087519094889450925082918401908083835b6020831061191f5780518252601f199092019160209182019101611900565b51815160209384036101000a600019018019909216911617905292019485525060405193849003810190932084516119609591949190910192509050612bc0565b50505050565b600054600160a060020a0316331461197d57600080fd5b61198681611efa565b50565b60606001836040518082805190602001908083835b602083106119bd5780518252601f19909201916020918201910161199e565b51815160209384036101000a6000190180199092169116179052920194855250604051938490038101842086519094879450925082918401908083835b60208310611a195780518252601f1990920191602091820191016119fa565b518151600019602094850361010090810a820192831692199390931691909117909252949092019687526040805197889003820188208054601f6002600183161590980290950116959095049283018290048202880182019052818752929450925050830182828015611acd5780601f10611aa257610100808354040283529160200191611acd565b820191906000526020600020905b815481529060010190602001808311611ab057829003601f168201915b5050505050905092915050565b60408051808201909152600e81527f6163746976617465645f64657363000000000000000000000000000000000000602082015281565b60408051808201909152600f81527f7375636365737366756c5f646573630000000000000000000000000000000000602082015281565b6060611bb7611b7260408051908101604052806001815260200160f960020a601102815250611f77565b611ba6611bb2611b8186611f77565b611ba660408051908101604052806001815260200160f960020a601102815250611f77565b9063ffffffff611fa016565b611f77565b92915050565b611bc5612c3e565b506040805160a0810182526000808252602080830182905283518082018552828152838501528351808201855282815260608401528351908101909352825260808101919091525b90565b611c18612c6b565b60408051606081018252600080825282518181526020818101909452919283019190611c5a565b611c47612c8f565b815260200190600190039081611c3f5790505b5081526020016000604051908082528060200260200182016040528015611c9557816020015b6060815260200190600190039081611c805790505b509052905090565b60408051808201909152600a81527f7b227469746c65223a22000000000000000000000000000000000000000000006020820152815160609190600090611cf090611ce790611f77565b611ba684611f77565b9150611d33611ce76040805190810160405280600f81526020017f222c2273686f727444657363223a220000000000000000000000000000000000815250611f77565b9150611d45611ce78560200151611f77565b9150611d88611ce76040805190810160405280600e81526020017f222c226c6f6e6744657363223a22000000000000000000000000000000000000815250611f77565b9150611d9a611ce78560400151611f77565b9150611ddd611ce76040805190810160405280600a81526020017f222c227769647468223a00000000000000000000000000000000000000000000815250611f77565b9150611df2611ce7611bb28660600151612017565b9150611e35611ce76040805190810160405280600d81526020017f2c22656c656d656e7473223a5b00000000000000000000000000000000000000815250611f77565b9150600090505b836080015151811015611eb1576000811115611e7d57611e7a611ce760408051908101604052806001815260200160fa60020a600b02815250611f77565b91505b611ea7611ce7611bb2866080015184815181101515611e9857fe5b90602001906020020151612176565b9150600101611e3c565b611ef2611ce76040805190810160405280600281526020017f5d7d000000000000000000000000000000000000000000000000000000000000815250611f77565b949350505050565b600160a060020a0381161515611f0f57600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b611f7f612cc2565b50604080518082019091528151815260208281019082018190525b50919050565b606080600083600001518560000151016040519080825280601f01601f191660200182016040528015611fdd578160200160208202803883390190505b509150602082019050611ff9818660200151876000015161244b565b84516020850151855161200f928401919061244b565b509392505050565b606080600081818515156120605760408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152945061216d565b6040805160208082528183019092529080820161040080388339019050509350600092505b60008611156120d257600a860660300160f860020a0284848151811015156120a957fe5b906020010190600160f860020a031916908160001a905350600a86049550600190920191612085565b60408051848152601f19601f86011681016020019091526000198401938015612105578160200160208202803883390190505b509150600090505b81518110156121695783516000198401938591811061212857fe5b90602001015160f860020a900460f860020a02828281518110151561214957fe5b906020010190600160f860020a031916908160001a90535060010161210d565b8194505b50505050919050565b606080826000015115612410576040805190810160405280600781526020017f7b226964223a220000000000000000000000000000000000000000000000000081525090506121d46121cb8460200151611f77565b611ba683611f77565b90506121fe6121cb60408051908101604052806001815260200160f960020a601102815250611f77565b60a084015151909150156122655761224d6121cb6040805190810160405280600b81526020017f2c2022616374696f6e223a000000000000000000000000000000000000000000815250611f77565b90506122626121cb611bb28560a0015161248f565b90505b60c083015151156122c9576122b16121cb6040805190810160405280600a81526020017f2c20227461626c65223a00000000000000000000000000000000000000000000815250611f77565b90506122c66121cb611bb28560c00151612632565b90505b61230a6121cb6040805190810160405280600981526020017f2c2274797065223a220000000000000000000000000000000000000000000000815250611f77565b905061231c6121cb8460400151611f77565b905061235f6121cb6040805190810160405280600b81526020017f222c226c6162656c223a22000000000000000000000000000000000000000000815250611f77565b90506123716121cb8460600151611f77565b90506123b46121cb6040805190810160405280600981526020017f222c2264617461223a0000000000000000000000000000000000000000000000815250611f77565b90506123c66121cb8460800151611f77565b90506124096121cb6040805190810160405280600181526020017f7d00000000000000000000000000000000000000000000000000000000000000815250611f77565b9150611f9a565b60408051808201909152600481527f6e756c6c0000000000000000000000000000000000000000000000000000000060208201529150611f9a565b60005b60208210612470578251845260209384019390920191601f199091019061244e565b50905182516020929092036101000a6000190180199091169116179052565b606080826000015115612410576040805190810160405280600c81526020017f7b2261646472657373223a22000000000000000000000000000000000000000081525090506124f06121cb611bb28560200151600160a060020a0316612849565b90506125336121cb6040805190810160405280601681526020017f222c2266756e6374696f6e53656c6563746f72223a2200000000000000000000815250611f77565b90506125456121cb8460400151611f77565b90506125886121cb6040805190810160405280600e81526020017f222c22617267756d656e7473223a000000000000000000000000000000000000815250611f77565b905061259a6121cb8460600151611f77565b90506125dd6121cb6040805190810160405280600c81526020017f2c22636f6e6669726d223a220000000000000000000000000000000000000000815250611f77565b90506125ef6121cb8460800151611f77565b90506124096121cb6040805190810160405280600281526020017f227d000000000000000000000000000000000000000000000000000000000000815250611f77565b60608060008084600001511561280a57505060408051808201909152600c81527f7b22636f6c756d6e73223a5b0000000000000000000000000000000000000000602082015290506000805b8460200151518110156127005760008211156126c8576126c56126bc60408051908101604052806001815260200160fa60020a600b02815250611f77565b611ba685611f77565b92505b6126f26126bc611bb28760200151848151811015156126e357fe5b9060200190602002015161298c565b92506001918201910161267e565b6127416126bc6040805190810160405280600a81526020017f5d2c22726f7773223a5b00000000000000000000000000000000000000000000815250611f77565b925060009150600090505b8460400151518110156127c257600082111561278d5761278a6126bc60408051908101604052806001815260200160fa60020a600b02815250611f77565b92505b6127b46126bc8660400151838151811015156127a557fe5b90602001906020020151611f77565b92506001918201910161274c565b6128036126bc6040805190810160405280600281526020017f5d7d000000000000000000000000000000000000000000000000000000000000815250611f77565b9350612841565b60408051808201909152600481527f6e756c6c00000000000000000000000000000000000000000000000000000000602082015293505b505050919050565b60408051602a80825260608083019093528291600091829182916020820161054080388339505081519195507f30000000000000000000000000000000000000000000000000000000000000009186915060009081106128a557fe5b906020010190600160f860020a031916908160001a90535083517f780000000000000000000000000000000000000000000000000000000000000090859060019081106128ee57fe5b906020010190600160f860020a031916908160001a905350859250600091505b602882101561298257506030600f8316016039600160a060020a0382161115612935576027015b8060f860020a02848360280360010181518110151561295057fe5b906020010190600160f860020a031916908160001a9053506010600160a060020a03841604925060019091019061290e565b5091949350505050565b606080826000015115612410576040805190810160405280600781526020017f7b226964223a220000000000000000000000000000000000000000000000000081525090506129e16121cb8460200151611f77565b9050612a0b6121cb60408051908101604052806001815260200160f960020a601102815250611f77565b60808401515190915015612a9c57612a416121cb60408051908101604052806001815260200160fa60020a600b02815250611f77565b9050612a846121cb6040805190810160405280600981526020017f22616374696f6e223a0000000000000000000000000000000000000000000000815250611f77565b9050612a996121cb611bb2856080015161248f565b90505b612add6121cb6040805190810160405280600981526020017f2c2274797065223a220000000000000000000000000000000000000000000000815250611f77565b9050612aef6121cb8460400151611f77565b9050612b326121cb6040805190810160405280600b81526020017f222c226c6162656c223a22000000000000000000000000000000000000000000815250611f77565b90506125ef6121cb8460600151611f77565b60a06040519081016040528060608152602001606081526020016060815260200160008152602001606081525090565b6101a06040519081016040528060001515815260200160608152602001606081526020016060815260200160608152602001612bae612c3e565b8152602001612bbb612c6b565b905290565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10612c0157805160ff1916838001178555612c2e565b82800160010185558215612c2e579182015b82811115612c2e578251825591602001919060010190612c13565b50612c3a929150612cd9565b5090565b6040805160a081018252600080825260208201526060918101829052818101829052608081019190915290565b60606040519081016040528060001515815260200160608152602001606081525090565b61012060405190810160405280600015158152602001606081526020016060815260200160608152602001612bbb612c3e565b604080518082019091526000808252602082015290565b611c0d91905b80821115612c3a5760008155600101612cdf5600a165627a7a72305820f797632e1ccbfe8563beaa28e5c93c54b9fb039516be6784ca2b72cd92c858700029",
  "sourceMap": "188:2228:7:-;;;567:5:35;:18;;-1:-1:-1;;;;;;567:18:35;575:10;567:18;;;188:2228:7;;;;;;",
  "deployedSourceMap": "188:2228:7:-;;;;;;;;;-1:-1:-1;;;188:2228:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;328:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;328:50:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;328:50:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;604:42;;8:9:-1;5:2;;;30:1;27;20:12;5:2;604:42:7;;;;878:54;;8:9:-1;5:2;;;30:1;27;20:12;5:2;878:54:7;;;;710:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;710:48:7;;;;1001:111:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1001:111:35;;;;;;652:52:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;652:52:7;;;;384:48;;8:9:-1;5:2;;;30:1;27;20:12;5:2;384:48:7;;;;238:20:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:35;;;;;;;;-1:-1:-1;;;;;238:20:35;;;;;;;;;;;;;;438:46:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;438:46:7;;;;828:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;828:44:7;;;;939:1475;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;939:1475:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;939:1475:7;;-1:-1:-1;;;939:1475:7;;-1:-1:-1;;;;;939:1475:7;;-1:-1:-1;939:1475:7;;-1:-1:-1;;;939:1475:7;490:46;;8:9:-1;5:2;;;30:1;27;20:12;5:2;490:46:7;;;;186:126:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;186:126:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;186:126:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;186:126:28;;;;-1:-1:-1;186:126:28;-1:-1:-1;186:126:28;;-1:-1:-1;186:126:28;;;;;;;;-1:-1:-1;;186:126:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;186:126:28;;;;-1:-1:-1;186:126:28;-1:-1:-1;186:126:28;;-1:-1:-1;186:126:28;;;;;;;;-1:-1:-1;186:126:28;;-1:-1:-1;186:126:28;;-1:-1:-1;;;;;;;186:126:28;1274:103:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1274:103:35;-1:-1:-1;;;;;1274:103:35;;;;;318:120:28;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;318:120:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;318:120:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;318:120:28;;;;-1:-1:-1;318:120:28;-1:-1:-1;318:120:28;;-1:-1:-1;318:120:28;;;;;;;;-1:-1:-1;318:120:28;;-1:-1:-1;318:120:28;;-1:-1:-1;;;;;;;318:120:28;542:56:7;;8:9:-1;5:2;;;30:1;27;20:12;5:2;542:56:7;;;;764:58;;8:9:-1;5:2;;;30:1;27;20:12;5:2;764:58:7;;;;328:50;;;;;;;;;;;;;;;;;;;:::o;604:42::-;;;;;;;;;;;;;;;;;;;:::o;878:54::-;;;;;;;;;;;;;;;;;;;:::o;710:48::-;;;;;;;;;;;;;;;;;;;:::o;1001:111:35:-;719:5;;-1:-1:-1;;;;;719:5:35;705:10;:19;697:28;;;;;;1077:5;;;1058:25;;-1:-1:-1;;;;;1077:5:35;;;;1058:25;;;1105:1;1089:18;;-1:-1:-1;;1089:18:35;;;1001:111::o;652:52:7:-;;;;;;;;;;;;;;;;;;;:::o;384:48::-;;;;;;;;;;;;;;;;;;;:::o;238:20:35:-;;;-1:-1:-1;;;;;238:20:35;;:::o;438:46:7:-;;;;;;;;;;;;;;;;;;;:::o;828:44::-;;;;;;;;;;;;;;;;;;;:::o;939:1475::-;1009:6;1064:20;1098:18;1744:34;2073:28;;:::i;:::-;1031:5;-1:-1:-1;;;;;1031:15:7;;:17;;;;;-1:-1:-1;;;1031:17:7;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1031:17:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1031:17:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1031:17:7;1027:1381;;;1134:5;-1:-1:-1;;;;;1134:14:7;;:16;;;;;-1:-1:-1;;;1134:16:7;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1134:16:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1134:16:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1134:16:7;1130:601;;;1179:9;1189:7;1179:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1179:18:7;;;;;-1:-1:-1;1179:18:7;;;;;;;;;;;1198:8;;;;;;;;;;;;;;;;1179:28;;:18;;;-1:-1:-1;1179:28:7;-1:-1:-1;1179:28:7;;1198:8;;1179:28;1198:8;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;1179:28:7;;;;;;;;;;;;;;;;;;1170:37;;;;274:1:-1;1170:37:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1179:28;;-1:-1:-1;1170:37:7;-1:-1:-1;;1170:37:7;;1179:28;1170:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1232:9;1242:7;1232:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1232:18:7;;;;;-1:-1:-1;1232:18:7;;;;;;;;;;;1251:13;;;;;;;;;;;;;;;;1232:33;;:18;;;-1:-1:-1;1232:33:7;-1:-1:-1;1232:33:7;;1251:13;;1232:33;1251:13;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;1232::7;;;;;;;;;;;;;;;;;;1225:40;;;;274:1:-1;1225:40:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1232:33;;-1:-1:-1;1225:40:7;-1:-1:-1;;1225:40:7;;1232:33;1225:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1130:601;;;1290:5;-1:-1:-1;;;;;1290:16:7;;:18;;;;;-1:-1:-1;;;1290:18:7;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1290:18:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1290:18:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1290:18:7;1286:445;;;1337:9;1347:7;1337:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1337:18:7;;;;;-1:-1:-1;1337:18:7;;;;;;;;;;;1356:10;;;;;;;;;;;;;;;;1337:30;;:18;;;-1:-1:-1;1337:30:7;-1:-1:-1;1337:30:7;;1356:10;;1337:30;1356:10;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;1337:30:7;;;;;;;;;;;;;;;;;;1328:39;;;;274:1:-1;1328:39:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1337:30;;-1:-1:-1;1328:39:7;-1:-1:-1;;1328:39:7;;1337:30;1328:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:9;1402:7;1392:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1392:18:7;;;;;-1:-1:-1;1392:18:7;;;;;;;;;;;1411:15;;;;;;;;;;;;;;;;1392:35;;:18;;;-1:-1:-1;1392:35:7;-1:-1:-1;1392:35:7;;1411:15;;1392:35;1411:15;36:153:-1;;1286:445:7;1452:5;-1:-1:-1;;;;;1452:13:7;;:15;;;;;-1:-1:-1;;;1452:15:7;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1452:15:7;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1452:15:7;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1452:15:7;1448:283;;;1496:9;1506:7;1496:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1496:18:7;;;;;-1:-1:-1;1496:18:7;;;;;;;;;;;1515:7;;;;;;;;;;;;;;;;1496:27;;:18;;;-1:-1:-1;1496:27:7;-1:-1:-1;1496:27:7;;1515:7;;1496:27;1515:7;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;1496:27:7;;;;;;;;;;;;;;;;;;1487:36;;;;274:1:-1;1487:36:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1496:27;;-1:-1:-1;1487:36:7;-1:-1:-1;;1487:36:7;;1496:27;1487:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1548:9;1558:7;1548:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1548:18:7;;;;;-1:-1:-1;1548:18:7;;;;;;;;;;;1567:12;;;;;;;;;;;;;;;;1548:32;;:18;;;-1:-1:-1;1548:32:7;-1:-1:-1;1548:32:7;;1567:12;;1548:32;1567:12;36:153:-1;;1448:283:7;1628:9;1638:7;1628:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1628:18:7;;;;;-1:-1:-1;1628:18:7;;;;;;;;;;;1647:9;;;;;;;;;;;;;;;;1628:29;;:18;;;-1:-1:-1;1628:29:7;-1:-1:-1;1628:29:7;;1647:9;;1628:29;1647:9;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;1628:29:7;;;;;;;;;;;;;;;;;;1619:38;;;;274:1:-1;1619:38:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1628:29;;-1:-1:-1;1619:38:7;-1:-1:-1;;1619:38:7;;1628:29;1619:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1682:9;1692:7;1682:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;1682:18:7;;;;;-1:-1:-1;1682:18:7;;;;;;;;;;;1701:14;;;;;;;;;;;;;;;;1682:34;;:18;;;-1:-1:-1;1682:34:7;-1:-1:-1;1682:34:7;;1701:14;;1682:34;1701:14;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;1682:34:7;;;;;;;;;;;;;;;;;;1675:41;;;;274:1:-1;1675:41:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1682:34;;-1:-1:-1;1675:41:7;-1:-1:-1;;1675:41:7;;1682:34;1675:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1448:283;1781:25;;;1804:1;1781:25;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;1744:62;;1834:225;;;;;;;;;1868:4;1834:225;;;;;;1890:11;;;;;;;;;;;;;;;;;;1834:225;;;;;;;;;;;;;;;;;;;;;;;;;;1943:6;1834:225;;;;1967:13;:4;:11;:13::i;:::-;1834:225;;;;1998:15;:13;:15::i;:::-;1834:225;;;;2031:14;:12;:14::i;:::-;1834:225;;1820:11;;:8;;1829:1;;1820:11;;;;;;;;;;;;;:239;;;;2104:217;;;;;;;;;2136:9;2146:7;2136:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2136:18:7;;;;;-1:-1:-1;2136:18:7;;;;;;;;;;;2155:11;;;;;;;;;;;;;;;;2136:31;;:18;;;-1:-1:-1;2136:31:7;-1:-1:-1;2136:31:7;;2155:11;;2136:31;2155:11;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;2136:31:7;;;;;;;;;;;;;;;;;;2104:217;;;;274:1:-1;2104:217:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2136:31;;-1:-1:-1;2104:217:7;-1:-1:-1;;2104:217:7;;2136:31;2104:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2185:9;2195:7;2185:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2185:18:7;;;;;-1:-1:-1;2185:18:7;;;;;;;;;;;2204:10;;;;;;;;;;;;;;;;2185:30;;:18;;;-1:-1:-1;2185:30:7;-1:-1:-1;2185:30:7;;2204:10;;2185:30;2204:10;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;2185:30:7;;;;;;;;;;;;;;;;;;2104:217;;;;274:1:-1;2104:217:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2185:30;;-1:-1:-1;2104:217:7;-1:-1:-1;;2104:217:7;;2185:30;2104:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2233:9;2243:7;2233:18;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;2233:18:7;;;;;-1:-1:-1;2233:18:7;;;;;;;;;;;2252:9;;;;;;;;;;;;;;;;2233:29;;:18;;;-1:-1:-1;2233:29:7;-1:-1:-1;2233:29:7;;2252:9;;2233:29;2252:9;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;2233:29:7;;;;;;;;;;;;;;;;;;2104:217;;;;274:1:-1;2104:217:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2233:29;;-1:-1:-1;2104:217:7;-1:-1:-1;;2104:217:7;;2233:29;2104:217;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2280:1;2104:217;;;;2299:8;2104:217;;;2073:248;;2342:15;:6;:13;:15::i;:::-;2335:22;;;;1027:1381;2388:9;;;;;;;;;-1:-1:-1;2388:9:7;;;-1:-1:-1;1027:1381:7;939:1475;;;;;;;;:::o;490:46::-;;;;;;;;;;;;;;;;;;;:::o;186:126:28:-;719:5:35;;-1:-1:-1;;;;;719:5:35;705:10;:19;697:28;;;;;;300:5:28;275:9;285:6;275:17;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;275:17:28;;;;;-1:-1:-1;275:17:28;;;;;;;;;;:22;;:17;;:22;;-1:-1:-1;275:17:28;-1:-1:-1;275:17:28;;:22;;;;:17;:22;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;275:22:28;;;;;-1:-1:-1;275:22:28;;;;;;;;;;;:30;;;;:22;;:30;;;;;-1:-1:-1;275:30:28;-1:-1:-1;275:30:28;:::i;:::-;;186:126;;;:::o;1274:103:35:-;719:5;;-1:-1:-1;;;;;719:5:35;705:10;:19;697:28;;;;;;1343:29;1362:9;1343:18;:29::i;:::-;1274:103;:::o;318:120:28:-;384:6;409:9;419:6;409:17;;;;;;;;;;;;;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;263:2;259:12;;;254:3;250:22;-1:-1;;246:30;311:9;;295:26;;;340:21;;377:20;365:33;;409:17:28;;;;;-1:-1:-1;409:17:28;;;;;;;;;;:22;;:17;;:22;;-1:-1:-1;409:17:28;-1:-1:-1;409:17:28;;:22;;;;:17;:22;36:153:-1;66:2;58:11;;36:153;;176:10;;164:23;;-1:-1;;139:12;;;;98:2;89:12;;;;114;36:153;;;299:10;344;;-1:-1;;263:2;259:12;;;254:3;250:22;;;246:30;;340:21;;;311:9;;295:26;;;;377:20;;;;365:33;;;409:22:28;;;;;;;;;;;;;;;;;;402:29;;;;274:1:-1;402:29:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;409:22;;-1:-1:-1;402:29:28;-1:-1:-1;;402:29:28;;409:22;402:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;318:120;;;;:::o;542:56:7:-;;;;;;;;;;;;;;;;;;;:::o;764:58::-;;;;;;;;;;;;;;;;;;;:::o;103:158:23:-;158:6;183:71;240:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;240:11:23;;;;:13::i;:::-;183:49;:39;204:17;:7;:15;:17::i;:::-;183:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;183:11:23;;;;:13::i;:::-;:20;:39;:20;:39;:::i;:::-;:47;:49::i;:71::-;176:78;103:158;-1:-1:-1;;103:158:23:o;329:116:26:-;369:6;;:::i;:::-;-1:-1:-1;401:37:26;;;;;;;;-1:-1:-1;401:37:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;329:116;;:::o;374:124:30:-;414:5;;:::i;:::-;445:46;;;;;;;;-1:-1:-1;445:46:30;;;458:15;;;;;445:46;458:15;;;;;;445:46;;;;;458:15;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;445:46;;;;488:1;475:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;445:46:30;;438:53;-1:-1:-1;374:124:30;:::o;392:943:31:-;470:33;;;;;;;;;;;;;;;;;542:11;;452:6;;470:33;1040:6;;520:44;;542:21;;:19;:21::i;:::-;520:14;:4;:12;:14::i;:44::-;513:51;;581:50;603:27;:25;;;;;;;;;;;;;;;;;;;:27::i;581:50::-;574:57;;648:48;670:25;:5;:15;;;:23;:25::i;648:48::-;641:55;;713:49;735:26;:24;;;;;;;;;;;;;;;;;;;:26::i;713:49::-;706:56;;779:47;801:24;:5;:14;;;:22;:24::i;779:47::-;772:54;;843:45;865:22;:20;;;;;;;;;;;;;;;;;;;:22::i;843:45::-;836:52;;905:55;927:32;:22;:5;:11;;;:20;:22::i;905:55::-;898:62;;977:48;999:25;:23;;;;;;;;;;;;;;;;;;;:25::i;977:48::-;970:55;;1049:1;1040:10;;1035:240;1056:5;:14;;;:21;1052:1;:25;1035:240;;;1106:1;1102;:5;1098:87;;;1134:36;1156:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;1156:11:31;;;;:13::i;1134:36::-;1127:43;;1098:87;1205:59;1227:36;:26;:5;:14;;;1242:1;1227:17;;;;;;;;;;;;;;;;;;:24;:26::i;1205:59::-;1198:66;-1:-1:-1;1079:3:31;;1035:240;;;1291:37;1313:14;:12;;;;;;;;;;;;;;;;;;;:14::i;1291:37::-;1284:44;392:943;-1:-1:-1;;;;392:943:31:o;1512:171:35:-;-1:-1:-1;;;;;1582:23:35;;;;1574:32;;;;;;1638:5;;;1617:38;;-1:-1:-1;;;;;1617:38:35;;;;1638:5;;;1617:38;;;1661:5;:17;;-1:-1:-1;;1661:17:35;-1:-1:-1;;;;;1661:17:35;;;;;;;;;;1512:171::o;2837:210:25:-;2897:5;;:::i;:::-;-1:-1:-1;3010:30:25;;;;;;;;;3016:18;;3010:30;;2979:4;2969:15;;;3010:30;;;;;;2837:210;;;;;:::o;23944:355::-;24022:6;24047:17;24111:11;24090:5;:10;;;24078:4;:9;;;:22;24067:34;;;;;;;;;;;;;;;;;;;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;24067:34:25;;24047:54;;24162:2;24157:3;24153:12;24143:22;;24176:36;24183:6;24191:4;:9;;;24202:4;:9;;;24176:6;:36::i;:::-;24238:9;;24249:10;;;;24261;;24222:50;;24229:18;;;24249:10;24222:6;:50::i;:::-;-1:-1:-1;24289:3:25;23944:355;-1:-1:-1;;;23944:355:25:o;50:483:24:-;103:6;;231;103;231;132:10;;128:51;;;158:10;;;;;;;;;;;;;;;;;;-1:-1:-1;158:10:24;;128:51;208:13;;;218:2;208:13;;;;;;;;;;;;;17:15:-1;;105:10;208:13:24;88:34:-1;136:17;;-1:-1;208:13:24;188:33;;256:1;252:5;;247:111;267:1;259:5;:9;247:111;;;313:2;305:5;:10;319:2;304:17;-1:-1:-1;;;299:23:24;289:4;294:1;289:7;;;;;;;;;;;;;;:33;-1:-1:-1;;;;;289:33:24;;;;;;;;-1:-1:-1;345:2:24;336:11;;;-1:-1:-1;270:3:24;;;;;247:111;;;388:14;;;;;;-1:-1:-1;;388:14:24;;;;;;;;;;;-1:-1:-1;;398:3:24;;;388:14;;;;;;;29:2:-1;21:6;17:15;117:4;105:10;97:6;88:34;136:17;;-1:-1;388:14:24;;367:35;;426:1;417:10;;412:85;433:5;:12;429:1;:16;412:85;;;477:9;;-1:-1:-1;;482:3:24;;;477:4;;:9;;;;;;;;;;;-1:-1:-1;;;477:9:24;;-1:-1:-1;;;477:9:24;466:5;472:1;466:8;;;;;;;;;;;;;;:20;-1:-1:-1;;;;;466:20:24;;;;;;;;-1:-1:-1;447:3:24;;412:85;;;520:5;506:20;;50:483;;;;;;;;:::o;568:1172:27:-;629:6;679:18;651:5;:12;;;647:1087;;;679:30;;;;;;;;;;;;;;;;;;;;730:41;752:18;:5;:8;;;:16;:18::i;:::-;730:14;:4;:12;:14::i;:41::-;723:48;;792:36;814:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;814:11:27;;;;:13::i;792:36::-;846:12;;;;:19;785:43;;-1:-1:-1;842:190:27;;;892:46;914:23;:21;;;;;;;;;;;;;;;;;;;:23::i;892:46::-;885:53;;963:54;985:31;:21;:5;:12;;;:19;:21::i;963:54::-;956:61;;842:190;1049:11;;;;:18;1045:187;;;1094:45;1116:22;:20;;;;;;;;;;;;;;;;;;;:22::i;1094:45::-;1087:52;;1164:53;1186:30;:20;:5;:11;;;:18;:20::i;1164:53::-;1157:60;;1045:187;1252:44;1274:21;:19;;;;;;;;;;;;;;;;;;;:21::i;1252:44::-;1245:51;;1317:44;1339:21;:5;:11;;;:19;:21::i;1317:44::-;1310:51;;1382:46;1404:23;:21;;;;;;;;;;;;;;;;;;;:23::i;1382:46::-;1375:53;;1449:44;1471:21;:5;:11;;;:19;:21::i;1449:44::-;1442:51;;1514:44;1536:21;:19;;;;;;;;;;;;;;;;;;;:21::i;1514:44::-;1507:51;;1579:43;1601:20;:5;:10;;;:18;:20::i;1579:43::-;1572:50;;1643:36;1665:13;:11;;;;;;;;;;;;;;;;;;;:13::i;1643:36::-;1636:43;;;;647:1087;1710:13;;;;;;;;;;;;;;;;;;-1:-1:-1;1710:13:27;;2089:548:25;2415:9;2209:164;2222:2;2215:9;;2209:164;;2291:10;;2278:24;;2337:2;2329:10;;;;2353:9;;;;-1:-1:-1;;2226:9:25;;;;2209:164;;;-1:-1:-1;2500:10:25;;2555:11;;2435:2;:8;;;;2427:3;:17;-1:-1:-1;;2427:21:25;2512:9;;2496:26;;;2551:22;;2599:21;2586:35;;2467:164::o;451:765:26:-;511:6;561:18;533:5;:12;;;529:681;;;561:35;;;;;;;;;;;;;;;;;;;;617:52;639:29;:19;:5;:8;;;-1:-1:-1;;;;;639:17:26;;:19::i;617:52::-;610:59;;690:57;712:34;:32;;;;;;;;;;;;;;;;;;;:34::i;690:57::-;683:64;;768:55;790:32;:5;:22;;;:30;:32::i;768:55::-;761:62;;844:49;866:26;:24;;;;;;;;;;;;;;;;;;;:26::i;844:49::-;837:56;;914:48;936:25;:5;:15;;;:23;:25::i;914:48::-;907:55;;983:47;1005:24;:22;;;;;;;;;;;;;;;;;;;:24::i;983:47::-;976:54;;1051:46;1073:23;:5;:13;;;:21;:23::i;1051:46::-;1044:53;;1118:37;1140:14;:12;;;;;;;;;;;;;;;;;;;:14::i;504:978:30:-;563:6;613:18;662:11;696:6;585:5;:12;;;581:895;;;-1:-1:-1;;613:35:30;;;;;;;;;;;;;;;;;;-1:-1:-1;;;691:298:30;712:5;:13;;;:20;708:1;:24;691:298;;;770:1;761:6;:10;757:100;;;802:36;824:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;824:11:30;;;;:13::i;:::-;802:14;:4;:12;:14::i;:36::-;795:43;;757:100;881:64;903:41;:31;917:5;:13;;;931:1;917:16;;;;;;;;;;;;;;;;;;903:13;:31::i;881:64::-;874:71;-1:-1:-1;973:1:30;963:11;;;;734:3;691:298;;;1009:45;1031:22;:20;;;;;;;;;;;;;;;;;;;:22::i;1009:45::-;1002:52;;1077:1;1068:10;;1101:1;1097:5;;1092:272;1108:5;:10;;;:17;1104:1;:21;1092:272;;;1163:1;1154:6;:10;1150:100;;;1195:36;1217:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;1217:11:30;;;;:13::i;1195:36::-;1188:43;;1150:100;1274:46;1296:23;:5;:10;;;1307:1;1296:13;;;;;;;;;;;;;;;;;;:21;:23::i;1274:46::-;1267:53;-1:-1:-1;1348:1:30;1338:11;;;;1127:3;1092:272;;;1384:37;1406:14;:12;;;;;;;;;;;;;;;;;;;:14::i;1384:37::-;1377:44;;;;581:895;1452:13;;;;;;;;;;;;;;;;;;-1:-1:-1;581:895:30;504:978;;;;;;:::o;206:443:21:-;307:13;;;317:2;307:13;;;262:6;307:13;;;;;;262:6;;387:11;;;;;;307:13;;;17:15:-1;;105:10;307:13:21;88:34:-1;-1:-1;;330:7:21;;287:33;;-1:-1:-1;340:8:21;;287:33;;-1:-1:-1;335:1:21;;330:7;;;;;;;;;;:18;-1:-1:-1;;;;;330:18:21;;;;;;;;-1:-1:-1;358:7:21;;368:9;;358:4;;363:1;;358:7;;;;;;;;;;:19;-1:-1:-1;;;;;358:19:21;;;;;;;;;409:5;387:28;;450:1;446:5;;441:173;457:2;453:1;:6;441:173;;;-1:-1:-1;505:2:21;493:8;;;492:15;529:2;-1:-1:-1;;;;;525:6:21;;;521:19;;;538:2;533:7;521:19;578:1;-1:-1:-1;;;573:7:21;554:4;564:1;559:2;:6;568:1;559:10;554:16;;;;;;;;;;;;;;:26;-1:-1:-1;;;;;554:26:21;;;;;;;;-1:-1:-1;601:2:21;-1:-1:-1;;;;;594:9:21;;;;-1:-1:-1;461:3:21;;;;;441:173;;;-1:-1:-1;637:4:21;;206:443;-1:-1:-1;;;;206:443:21:o;1488:909:30:-;1555:6;1605:18;1577:5;:12;;;1573:818;;;1605:30;;;;;;;;;;;;;;;;;;;;1656:41;1678:18;:5;:8;;;:16;:18::i;1656:41::-;1649:48;;1718:36;1740:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;1740:11:30;;;;:13::i;1718:36::-;1772:12;;;;:19;1711:43;;-1:-1:-1;1768:249:30;;;1818:36;1840:13;:11;;;;;;;;;;;;;;-1:-1:-1;;;;;1840:11:30;;;;:13::i;1818:36::-;1811:43;;1879:44;1901:21;:19;;;;;;;;;;;;;;;;;;;:21::i;1879:44::-;1872:51;;1948:54;1970:31;:21;:5;:12;;;:19;:21::i;1948:54::-;1941:61;;1768:249;2037:44;2059:21;:19;;;;;;;;;;;;;;;;;;;:21::i;2037:44::-;2030:51;;2102:44;2124:21;:5;:11;;;:19;:21::i;2102:44::-;2095:51;;2167:46;2189:23;:21;;;;;;;;;;;;;;;;;;;:23::i;2167:46::-;2160:53;;2234:44;2256:21;:5;:11;;;:19;:21::i;188:2228:7:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;188:2228:7;;;-1:-1:-1;188:2228:7;:::i;:::-;;;:::o;:::-;;;;;;;;;-1:-1:-1;188:2228:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;188:2228:7;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;",
  "source": "pragma solidity ^0.4.24;\n\nimport \"./ERC20SaleWidgetRenderer.sol\";\nimport \"tokenboost-solidity/contracts/widget/Widgets.sol\";\nimport \"tokenboost-solidity/contracts/utils/StringUtils.sol\";\n\ncontract SaleStatusWidgetRenderer is ERC20SaleWidgetRenderer {\n    using Widgets for Widgets.Widget;\n    using StringUtils for string;\n\n    string public constant SALE_STATUS = \"sale_status\";\n    string public constant SHORT_DESC = \"short_desc\";\n    string public constant LONG_DESC = \"long_desc\";\n    string public constant ACTIVATED = \"activated\";\n    string public constant ACTIVATED_DESC = \"activated_desc\";\n    string public constant STARTED = \"started\";\n    string public constant STARTED_DESC = \"started_desc\";\n    string public constant SUCCESSFUL = \"successful\";\n    string public constant SUCCESSFUL_DESC = \"successful_desc\";\n    string public constant FINISHED = \"finished\";\n    string public constant FINISHED_DESC = \"finished_desc\";\n\n    function render(string _locale, ERC20Sale _sale) public view returns (string) {\n        if (_sale.activated()) {\n            string memory status;\n            string memory desc;\n            if (_sale.finished()) {\n                status = resources[_locale][FINISHED];\n                desc = resources[_locale][FINISHED_DESC];\n            } else if (_sale.successful()) {\n                status = resources[_locale][SUCCESSFUL];\n                desc = resources[_locale][SUCCESSFUL_DESC];\n            } else if (_sale.started()) {\n                status = resources[_locale][STARTED];\n                desc = resources[_locale][STARTED_DESC];\n            } else {\n                status = resources[_locale][ACTIVATED];\n                desc = resources[_locale][ACTIVATED_DESC];\n            }\n            Elements.Element[] memory elements = new Elements.Element[](1);\n            elements[0] = Elements.Element(\n                true,\n                SALE_STATUS,\n                \"text\",\n                status,\n                desc.quoted(),\n                Actions.empty(),\n                Tables.empty()\n            );\n            Widgets.Widget memory widget = Widgets.Widget(\n                resources[_locale][SALE_STATUS],\n                resources[_locale][SHORT_DESC],\n                resources[_locale][LONG_DESC],\n                4,\n                elements\n            );\n            return widget.toJson();\n        } else {\n            return \"\";\n        }\n    }\n}\n",
  "sourcePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20sale/contracts/sale/erc20/widget/SaleStatusWidgetRenderer.sol",
  "ast": {
    "absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20sale/contracts/sale/erc20/widget/SaleStatusWidgetRenderer.sol",
    "exportedSymbols": {
      "SaleStatusWidgetRenderer": [
        1885
      ]
    },
    "id": 1886,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1675,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:7"
      },
      {
        "absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20sale/contracts/sale/erc20/widget/ERC20SaleWidgetRenderer.sol",
        "file": "./ERC20SaleWidgetRenderer.sol",
        "id": 1676,
        "nodeType": "ImportDirective",
        "scope": 1886,
        "sourceUnit": 1203,
        "src": "26:39:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/widget/Widgets.sol",
        "file": "tokenboost-solidity/contracts/widget/Widgets.sol",
        "id": 1677,
        "nodeType": "ImportDirective",
        "scope": 1886,
        "sourceUnit": 6259,
        "src": "66:58:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/utils/StringUtils.sol",
        "file": "tokenboost-solidity/contracts/utils/StringUtils.sol",
        "id": 1678,
        "nodeType": "ImportDirective",
        "scope": 1886,
        "sourceUnit": 3505,
        "src": "125:61:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1679,
              "name": "ERC20SaleWidgetRenderer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1202,
              "src": "225:23:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC20SaleWidgetRenderer_$1202",
                "typeString": "contract ERC20SaleWidgetRenderer"
              }
            },
            "id": 1680,
            "nodeType": "InheritanceSpecifier",
            "src": "225:23:7"
          }
        ],
        "contractDependencies": [
          1202,
          5715,
          6499
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1885,
        "linearizedBaseContracts": [
          1885,
          1202,
          5715,
          6499
        ],
        "name": "SaleStatusWidgetRenderer",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 1683,
            "libraryName": {
              "contractScope": null,
              "id": 1681,
              "name": "Widgets",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6258,
              "src": "261:7:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Widgets_$6258",
                "typeString": "library Widgets"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "255:33:7",
            "typeName": {
              "contractScope": null,
              "id": 1682,
              "name": "Widgets.Widget",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6096,
              "src": "273:14:7",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Widget_$6096_storage_ptr",
                "typeString": "struct Widgets.Widget"
              }
            }
          },
          {
            "id": 1686,
            "libraryName": {
              "contractScope": null,
              "id": 1684,
              "name": "StringUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3504,
              "src": "299:11:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StringUtils_$3504",
                "typeString": "library StringUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "293:29:7",
            "typeName": {
              "id": 1685,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "315:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            }
          },
          {
            "constant": true,
            "id": 1689,
            "name": "SALE_STATUS",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "328:50:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1687,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "328:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "73616c655f737461747573",
              "id": 1688,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "365:13:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_ed865f7bd191f0d54223cddd0770bf0b89337dff0917320f6218ad0e3ac9f8f8",
                "typeString": "literal_string \"sale_status\""
              },
              "value": "sale_status"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1692,
            "name": "SHORT_DESC",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "384:48:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1690,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "384:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "73686f72745f64657363",
              "id": 1691,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "420:12:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_94c241f8e931f92c2d4b9c8bf91f277610ffbc69f83ddd91d5e8535e49fe7894",
                "typeString": "literal_string \"short_desc\""
              },
              "value": "short_desc"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1695,
            "name": "LONG_DESC",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "438:46:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1693,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "438:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6c6f6e675f64657363",
              "id": 1694,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "473:11:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_a47709c5db6426dae60658aa3fe6818a09dac224ef85f317a31b897413052755",
                "typeString": "literal_string \"long_desc\""
              },
              "value": "long_desc"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1698,
            "name": "ACTIVATED",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "490:46:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1696,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "490:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "616374697661746564",
              "id": 1697,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "525:11:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_8e4560b1c76dcaab13085db49759e742cb80a5f12ca42c8f7f7913ade5355774",
                "typeString": "literal_string \"activated\""
              },
              "value": "activated"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1701,
            "name": "ACTIVATED_DESC",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "542:56:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1699,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "542:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6163746976617465645f64657363",
              "id": 1700,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "582:16:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_ccee63c202a125b02af5a5e77f315d3215ca7213540d93dd5681868968d20de6",
                "typeString": "literal_string \"activated_desc\""
              },
              "value": "activated_desc"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1704,
            "name": "STARTED",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "604:42:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1702,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "604:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "73746172746564",
              "id": 1703,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "637:9:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_bdd2b11e12b62ec1dcb7f0672fc8eae42b5d96c951242139ad2dbc8a2569e4eb",
                "typeString": "literal_string \"started\""
              },
              "value": "started"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1707,
            "name": "STARTED_DESC",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "652:52:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1705,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "652:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "737461727465645f64657363",
              "id": 1706,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "690:14:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_5c92981455c27d95a2464971c30d3971b4e3448c0873d77560c26c6c715cb429",
                "typeString": "literal_string \"started_desc\""
              },
              "value": "started_desc"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1710,
            "name": "SUCCESSFUL",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "710:48:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1708,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "710:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7375636365737366756c",
              "id": 1709,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "746:12:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_998474758c0f70f185651ffc69b139036898106a3de291220847f99024d69713",
                "typeString": "literal_string \"successful\""
              },
              "value": "successful"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1713,
            "name": "SUCCESSFUL_DESC",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "764:58:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1711,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "764:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7375636365737366756c5f64657363",
              "id": 1712,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "805:17:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_fa652d4ac5399a9179176ae5663c874695f1a3c74fcd527b61f2f132d9bf8db1",
                "typeString": "literal_string \"successful_desc\""
              },
              "value": "successful_desc"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1716,
            "name": "FINISHED",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "828:44:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1714,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "828:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "66696e6973686564",
              "id": 1715,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "862:10:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_7b33a07f1644fab5bc0af6f7c06c8dceb370139ee7f9ae35b70dfee8eda3c95a",
                "typeString": "literal_string \"finished\""
              },
              "value": "finished"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1719,
            "name": "FINISHED_DESC",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "878:54:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1717,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "878:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "66696e69736865645f64657363",
              "id": 1718,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "917:15:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_8bfe26a592f469014ed861f0ead2fca390e4e2366175a9431c47320375d05d2e",
                "typeString": "literal_string \"finished_desc\""
              },
              "value": "finished_desc"
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 1883,
              "nodeType": "Block",
              "src": "1017:1397:7",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1728,
                        "name": "_sale",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1723,
                        "src": "1031:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERC20Sale_$444",
                          "typeString": "contract ERC20Sale"
                        }
                      },
                      "id": 1729,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "activated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2211,
                      "src": "1031:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                        "typeString": "function () view external returns (bool)"
                      }
                    },
                    "id": 1730,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1031:17:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 1881,
                    "nodeType": "Block",
                    "src": "2374:34:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "",
                          "id": 1879,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2395:2:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                            "typeString": "literal_string \"\""
                          },
                          "value": ""
                        },
                        "functionReturnParameters": 1727,
                        "id": 1880,
                        "nodeType": "Return",
                        "src": "2388:9:7"
                      }
                    ]
                  },
                  "id": 1882,
                  "nodeType": "IfStatement",
                  "src": "1027:1381:7",
                  "trueBody": {
                    "id": 1878,
                    "nodeType": "Block",
                    "src": "1050:1318:7",
                    "statements": [
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1732,
                            "name": "status",
                            "nodeType": "VariableDeclaration",
                            "scope": 1884,
                            "src": "1064:20:7",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 1731,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "1064:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1733,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1064:20:7"
                      },
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1735,
                            "name": "desc",
                            "nodeType": "VariableDeclaration",
                            "scope": 1884,
                            "src": "1098:18:7",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 1734,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "1098:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1736,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1098:18:7"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1737,
                              "name": "_sale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1723,
                              "src": "1134:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ERC20Sale_$444",
                                "typeString": "contract ERC20Sale"
                              }
                            },
                            "id": 1738,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "finished",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2724,
                            "src": "1134:14:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                              "typeString": "function () view external returns (bool)"
                            }
                          },
                          "id": 1739,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1134:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1757,
                                "name": "_sale",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1723,
                                "src": "1290:5:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ERC20Sale_$444",
                                  "typeString": "contract ERC20Sale"
                                }
                              },
                              "id": 1758,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "successful",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2683,
                              "src": "1290:16:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                                "typeString": "function () view external returns (bool)"
                              }
                            },
                            "id": 1759,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1290:18:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1777,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1723,
                                  "src": "1452:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$444",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 1778,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "started",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2642,
                                "src": "1452:13:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                                  "typeString": "function () view external returns (bool)"
                                }
                              },
                              "id": 1779,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1452:15:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "id": 1813,
                              "nodeType": "Block",
                              "src": "1601:130:7",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1803,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 1797,
                                      "name": "status",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1732,
                                      "src": "1619:6:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 1798,
                                          "name": "resources",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5678,
                                          "src": "1628:9:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                            "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                          }
                                        },
                                        "id": 1800,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 1799,
                                          "name": "_locale",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1721,
                                          "src": "1638:7:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "1628:18:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                          "typeString": "mapping(string memory => string storage ref)"
                                        }
                                      },
                                      "id": 1802,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 1801,
                                        "name": "ACTIVATED",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1698,
                                        "src": "1647:9:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "1628:29:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_storage",
                                        "typeString": "string storage ref"
                                      }
                                    },
                                    "src": "1619:38:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 1804,
                                  "nodeType": "ExpressionStatement",
                                  "src": "1619:38:7"
                                },
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1811,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 1805,
                                      "name": "desc",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1735,
                                      "src": "1675:4:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 1806,
                                          "name": "resources",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5678,
                                          "src": "1682:9:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                            "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                          }
                                        },
                                        "id": 1808,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 1807,
                                          "name": "_locale",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1721,
                                          "src": "1692:7:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "1682:18:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                          "typeString": "mapping(string memory => string storage ref)"
                                        }
                                      },
                                      "id": 1810,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 1809,
                                        "name": "ACTIVATED_DESC",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1701,
                                        "src": "1701:14:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "1682:34:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_storage",
                                        "typeString": "string storage ref"
                                      }
                                    },
                                    "src": "1675:41:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 1812,
                                  "nodeType": "ExpressionStatement",
                                  "src": "1675:41:7"
                                }
                              ]
                            },
                            "id": 1814,
                            "nodeType": "IfStatement",
                            "src": "1448:283:7",
                            "trueBody": {
                              "id": 1796,
                              "nodeType": "Block",
                              "src": "1469:126:7",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1786,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 1780,
                                      "name": "status",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1732,
                                      "src": "1487:6:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 1781,
                                          "name": "resources",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5678,
                                          "src": "1496:9:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                            "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                          }
                                        },
                                        "id": 1783,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 1782,
                                          "name": "_locale",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1721,
                                          "src": "1506:7:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "1496:18:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                          "typeString": "mapping(string memory => string storage ref)"
                                        }
                                      },
                                      "id": 1785,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 1784,
                                        "name": "STARTED",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1704,
                                        "src": "1515:7:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "1496:27:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_storage",
                                        "typeString": "string storage ref"
                                      }
                                    },
                                    "src": "1487:36:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 1787,
                                  "nodeType": "ExpressionStatement",
                                  "src": "1487:36:7"
                                },
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1794,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 1788,
                                      "name": "desc",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1735,
                                      "src": "1541:4:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 1789,
                                          "name": "resources",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5678,
                                          "src": "1548:9:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                            "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                          }
                                        },
                                        "id": 1791,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 1790,
                                          "name": "_locale",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1721,
                                          "src": "1558:7:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "1548:18:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                          "typeString": "mapping(string memory => string storage ref)"
                                        }
                                      },
                                      "id": 1793,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 1792,
                                        "name": "STARTED_DESC",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1707,
                                        "src": "1567:12:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "1548:32:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_storage",
                                        "typeString": "string storage ref"
                                      }
                                    },
                                    "src": "1541:39:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 1795,
                                  "nodeType": "ExpressionStatement",
                                  "src": "1541:39:7"
                                }
                              ]
                            }
                          },
                          "id": 1815,
                          "nodeType": "IfStatement",
                          "src": "1286:445:7",
                          "trueBody": {
                            "id": 1776,
                            "nodeType": "Block",
                            "src": "1310:132:7",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1766,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 1760,
                                    "name": "status",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1732,
                                    "src": "1328:6:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "id": 1761,
                                        "name": "resources",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5678,
                                        "src": "1337:9:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                          "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                        }
                                      },
                                      "id": 1763,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 1762,
                                        "name": "_locale",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1721,
                                        "src": "1347:7:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "1337:18:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                        "typeString": "mapping(string memory => string storage ref)"
                                      }
                                    },
                                    "id": 1765,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1764,
                                      "name": "SUCCESSFUL",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1710,
                                      "src": "1356:10:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "1337:30:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_storage",
                                      "typeString": "string storage ref"
                                    }
                                  },
                                  "src": "1328:39:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "id": 1767,
                                "nodeType": "ExpressionStatement",
                                "src": "1328:39:7"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1774,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 1768,
                                    "name": "desc",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1735,
                                    "src": "1385:4:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "id": 1769,
                                        "name": "resources",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5678,
                                        "src": "1392:9:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                          "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                        }
                                      },
                                      "id": 1771,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 1770,
                                        "name": "_locale",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1721,
                                        "src": "1402:7:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "1392:18:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                        "typeString": "mapping(string memory => string storage ref)"
                                      }
                                    },
                                    "id": 1773,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1772,
                                      "name": "SUCCESSFUL_DESC",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1713,
                                      "src": "1411:15:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "1392:35:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_storage",
                                      "typeString": "string storage ref"
                                    }
                                  },
                                  "src": "1385:42:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "id": 1775,
                                "nodeType": "ExpressionStatement",
                                "src": "1385:42:7"
                              }
                            ]
                          }
                        },
                        "id": 1816,
                        "nodeType": "IfStatement",
                        "src": "1130:601:7",
                        "trueBody": {
                          "id": 1756,
                          "nodeType": "Block",
                          "src": "1152:128:7",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1746,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 1740,
                                  "name": "status",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1732,
                                  "src": "1170:6:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 1741,
                                      "name": "resources",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5678,
                                      "src": "1179:9:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                        "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                      }
                                    },
                                    "id": 1743,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1742,
                                      "name": "_locale",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1721,
                                      "src": "1189:7:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "1179:18:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                      "typeString": "mapping(string memory => string storage ref)"
                                    }
                                  },
                                  "id": 1745,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 1744,
                                    "name": "FINISHED",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1716,
                                    "src": "1198:8:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1179:28:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  }
                                },
                                "src": "1170:37:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              "id": 1747,
                              "nodeType": "ExpressionStatement",
                              "src": "1170:37:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1754,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 1748,
                                  "name": "desc",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1735,
                                  "src": "1225:4:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 1749,
                                      "name": "resources",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5678,
                                      "src": "1232:9:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                        "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                      }
                                    },
                                    "id": 1751,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1750,
                                      "name": "_locale",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1721,
                                      "src": "1242:7:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "1232:18:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                      "typeString": "mapping(string memory => string storage ref)"
                                    }
                                  },
                                  "id": 1753,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 1752,
                                    "name": "FINISHED_DESC",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1719,
                                    "src": "1251:13:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1232:33:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  }
                                },
                                "src": "1225:40:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              "id": 1755,
                              "nodeType": "ExpressionStatement",
                              "src": "1225:40:7"
                            }
                          ]
                        }
                      },
                      {
                        "assignments": [
                          1821
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1821,
                            "name": "elements",
                            "nodeType": "VariableDeclaration",
                            "scope": 1884,
                            "src": "1744:34:7",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_Element_$5466_memory_$dyn_memory_ptr",
                              "typeString": "struct Elements.Element[]"
                            },
                            "typeName": {
                              "baseType": {
                                "contractScope": null,
                                "id": 1819,
                                "name": "Elements.Element",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 5466,
                                "src": "1744:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Element_$5466_storage_ptr",
                                  "typeString": "struct Elements.Element"
                                }
                              },
                              "id": 1820,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "1744:18:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$5466_storage_$dyn_storage_ptr",
                                "typeString": "struct Elements.Element[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1827,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 1825,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1804:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              }
                            ],
                            "id": 1824,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "1781:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Element_$5466_memory_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (struct Elements.Element memory[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "contractScope": null,
                                "id": 1822,
                                "name": "Elements.Element",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 5466,
                                "src": "1785:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Element_$5466_storage_ptr",
                                  "typeString": "struct Elements.Element"
                                }
                              },
                              "id": 1823,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "1785:18:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$5466_storage_$dyn_storage_ptr",
                                "typeString": "struct Elements.Element[]"
                              }
                            }
                          },
                          "id": 1826,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1781:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_Element_$5466_memory_$dyn_memory",
                            "typeString": "struct Elements.Element memory[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1744:62:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1847,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 1828,
                              "name": "elements",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1821,
                              "src": "1820:8:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$5466_memory_$dyn_memory_ptr",
                                "typeString": "struct Elements.Element memory[] memory"
                              }
                            },
                            "id": 1830,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 1829,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1829:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1820:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Element_$5466_memory",
                              "typeString": "struct Elements.Element memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 1833,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1868:4:7",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "id": 1834,
                                "name": "SALE_STATUS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1689,
                                "src": "1890:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "74657874",
                                "id": 1835,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1919:6:7",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_9599d5e4e43121196cadfeaea326e46f58d9db74299decfd64bd3b700350ccd9",
                                  "typeString": "literal_string \"text\""
                                },
                                "value": "text"
                              },
                              {
                                "argumentTypes": null,
                                "id": 1836,
                                "name": "status",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1732,
                                "src": "1943:6:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1837,
                                    "name": "desc",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1735,
                                    "src": "1967:4:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 1838,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "quoted",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3503,
                                  "src": "1967:11:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                    "typeString": "function (string memory) pure returns (string memory)"
                                  }
                                },
                                "id": 1839,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1967:13:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1840,
                                    "name": "Actions",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5438,
                                    "src": "1998:7:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Actions_$5438_$",
                                      "typeString": "type(library Actions)"
                                    }
                                  },
                                  "id": 1841,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "empty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 5326,
                                  "src": "1998:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$5310_memory_ptr_$",
                                    "typeString": "function () pure returns (struct Actions.Action memory)"
                                  }
                                },
                                "id": 1842,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1998:15:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Action_$5310_memory_ptr",
                                  "typeString": "struct Actions.Action memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1843,
                                    "name": "Tables",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6071,
                                    "src": "2031:6:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Tables_$6071_$",
                                      "typeString": "type(library Tables)"
                                    }
                                  },
                                  "id": 1844,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "empty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 5787,
                                  "src": "2031:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$5767_memory_ptr_$",
                                    "typeString": "function () pure returns (struct Tables.Table memory)"
                                  }
                                },
                                "id": 1845,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2031:14:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Table_$5767_memory_ptr",
                                  "typeString": "struct Tables.Table memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_9599d5e4e43121196cadfeaea326e46f58d9db74299decfd64bd3b700350ccd9",
                                  "typeString": "literal_string \"text\""
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_struct$_Action_$5310_memory_ptr",
                                  "typeString": "struct Actions.Action memory"
                                },
                                {
                                  "typeIdentifier": "t_struct$_Table_$5767_memory_ptr",
                                  "typeString": "struct Tables.Table memory"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1831,
                                "name": "Elements",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5667,
                                "src": "1834:8:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Elements_$5667_$",
                                  "typeString": "type(library Elements)"
                                }
                              },
                              "id": 1832,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "Element",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 5466,
                              "src": "1834:16:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_Element_$5466_storage_ptr_$",
                                "typeString": "type(struct Elements.Element storage pointer)"
                              }
                            },
                            "id": 1846,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1834:225:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Element_$5466_memory",
                              "typeString": "struct Elements.Element memory"
                            }
                          },
                          "src": "1820:239:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Element_$5466_memory",
                            "typeString": "struct Elements.Element memory"
                          }
                        },
                        "id": 1848,
                        "nodeType": "ExpressionStatement",
                        "src": "1820:239:7"
                      },
                      {
                        "assignments": [
                          1852
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1852,
                            "name": "widget",
                            "nodeType": "VariableDeclaration",
                            "scope": 1884,
                            "src": "2073:28:7",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Widget_$6096_memory_ptr",
                              "typeString": "struct Widgets.Widget"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 1851,
                              "name": "Widgets.Widget",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 6096,
                              "src": "2073:14:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Widget_$6096_storage_ptr",
                                "typeString": "struct Widgets.Widget"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1873,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 1855,
                                  "name": "resources",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5678,
                                  "src": "2136:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                    "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                  }
                                },
                                "id": 1857,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 1856,
                                  "name": "_locale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1721,
                                  "src": "2146:7:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2136:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                  "typeString": "mapping(string memory => string storage ref)"
                                }
                              },
                              "id": 1859,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1858,
                                "name": "SALE_STATUS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1689,
                                "src": "2155:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2136:31:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 1860,
                                  "name": "resources",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5678,
                                  "src": "2185:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                    "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                  }
                                },
                                "id": 1862,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 1861,
                                  "name": "_locale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1721,
                                  "src": "2195:7:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2185:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                  "typeString": "mapping(string memory => string storage ref)"
                                }
                              },
                              "id": 1864,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1863,
                                "name": "SHORT_DESC",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1692,
                                "src": "2204:10:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2185:30:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 1865,
                                  "name": "resources",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5678,
                                  "src": "2233:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                    "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                  }
                                },
                                "id": 1867,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 1866,
                                  "name": "_locale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1721,
                                  "src": "2243:7:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2233:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                  "typeString": "mapping(string memory => string storage ref)"
                                }
                              },
                              "id": 1869,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1868,
                                "name": "LONG_DESC",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1695,
                                "src": "2252:9:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2233:29:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "34",
                              "id": 1870,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2280:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_4_by_1",
                                "typeString": "int_const 4"
                              },
                              "value": "4"
                            },
                            {
                              "argumentTypes": null,
                              "id": 1871,
                              "name": "elements",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1821,
                              "src": "2299:8:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$5466_memory_$dyn_memory_ptr",
                                "typeString": "struct Elements.Element memory[] memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              },
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              },
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              },
                              {
                                "typeIdentifier": "t_rational_4_by_1",
                                "typeString": "int_const 4"
                              },
                              {
                                "typeIdentifier": "t_array$_t_struct$_Element_$5466_memory_$dyn_memory_ptr",
                                "typeString": "struct Elements.Element memory[] memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1853,
                              "name": "Widgets",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6258,
                              "src": "2104:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Widgets_$6258_$",
                                "typeString": "type(library Widgets)"
                              }
                            },
                            "id": 1854,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "Widget",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6096,
                            "src": "2104:14:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_Widget_$6096_storage_ptr_$",
                              "typeString": "type(struct Widgets.Widget storage pointer)"
                            }
                          },
                          "id": 1872,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2104:217:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Widget_$6096_memory",
                            "typeString": "struct Widgets.Widget memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2073:248:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1874,
                              "name": "widget",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1852,
                              "src": "2342:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Widget_$6096_memory_ptr",
                                "typeString": "struct Widgets.Widget memory"
                              }
                            },
                            "id": 1875,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "toJson",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6257,
                            "src": "2342:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Widget_$6096_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_Widget_$6096_memory_ptr_$",
                              "typeString": "function (struct Widgets.Widget memory) pure returns (string memory)"
                            }
                          },
                          "id": 1876,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2342:15:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        "functionReturnParameters": 1727,
                        "id": 1877,
                        "nodeType": "Return",
                        "src": "2335:22:7"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1884,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "render",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1724,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1721,
                  "name": "_locale",
                  "nodeType": "VariableDeclaration",
                  "scope": 1884,
                  "src": "955:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1720,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "955:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1723,
                  "name": "_sale",
                  "nodeType": "VariableDeclaration",
                  "scope": 1884,
                  "src": "971:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ERC20Sale_$444",
                    "typeString": "contract ERC20Sale"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1722,
                    "name": "ERC20Sale",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 444,
                    "src": "971:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ERC20Sale_$444",
                      "typeString": "contract ERC20Sale"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "954:33:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1727,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1726,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1884,
                  "src": "1009:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1725,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1009:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1008:8:7"
            },
            "scope": 1885,
            "src": "939:1475:7",
            "stateMutability": "view",
            "superFunction": 1201,
            "visibility": "public"
          }
        ],
        "scope": 1886,
        "src": "188:2228:7"
      }
    ],
    "src": "0:2417:7"
  },
  "legacyAST": {
    "absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20sale/contracts/sale/erc20/widget/SaleStatusWidgetRenderer.sol",
    "exportedSymbols": {
      "SaleStatusWidgetRenderer": [
        1885
      ]
    },
    "id": 1886,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 1675,
        "literals": [
          "solidity",
          "^",
          "0.4",
          ".24"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:24:7"
      },
      {
        "absolutePath": "/Users/yoonjae/SolidityProjects/tokenboost-solidity-erc20sale/contracts/sale/erc20/widget/ERC20SaleWidgetRenderer.sol",
        "file": "./ERC20SaleWidgetRenderer.sol",
        "id": 1676,
        "nodeType": "ImportDirective",
        "scope": 1886,
        "sourceUnit": 1203,
        "src": "26:39:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/widget/Widgets.sol",
        "file": "tokenboost-solidity/contracts/widget/Widgets.sol",
        "id": 1677,
        "nodeType": "ImportDirective",
        "scope": 1886,
        "sourceUnit": 6259,
        "src": "66:58:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "tokenboost-solidity/contracts/utils/StringUtils.sol",
        "file": "tokenboost-solidity/contracts/utils/StringUtils.sol",
        "id": 1678,
        "nodeType": "ImportDirective",
        "scope": 1886,
        "sourceUnit": 3505,
        "src": "125:61:7",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 1679,
              "name": "ERC20SaleWidgetRenderer",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 1202,
              "src": "225:23:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_ERC20SaleWidgetRenderer_$1202",
                "typeString": "contract ERC20SaleWidgetRenderer"
              }
            },
            "id": 1680,
            "nodeType": "InheritanceSpecifier",
            "src": "225:23:7"
          }
        ],
        "contractDependencies": [
          1202,
          5715,
          6499
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 1885,
        "linearizedBaseContracts": [
          1885,
          1202,
          5715,
          6499
        ],
        "name": "SaleStatusWidgetRenderer",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "id": 1683,
            "libraryName": {
              "contractScope": null,
              "id": 1681,
              "name": "Widgets",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6258,
              "src": "261:7:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_Widgets_$6258",
                "typeString": "library Widgets"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "255:33:7",
            "typeName": {
              "contractScope": null,
              "id": 1682,
              "name": "Widgets.Widget",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6096,
              "src": "273:14:7",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_Widget_$6096_storage_ptr",
                "typeString": "struct Widgets.Widget"
              }
            }
          },
          {
            "id": 1686,
            "libraryName": {
              "contractScope": null,
              "id": 1684,
              "name": "StringUtils",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 3504,
              "src": "299:11:7",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_StringUtils_$3504",
                "typeString": "library StringUtils"
              }
            },
            "nodeType": "UsingForDirective",
            "src": "293:29:7",
            "typeName": {
              "id": 1685,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "315:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            }
          },
          {
            "constant": true,
            "id": 1689,
            "name": "SALE_STATUS",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "328:50:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1687,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "328:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "73616c655f737461747573",
              "id": 1688,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "365:13:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_ed865f7bd191f0d54223cddd0770bf0b89337dff0917320f6218ad0e3ac9f8f8",
                "typeString": "literal_string \"sale_status\""
              },
              "value": "sale_status"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1692,
            "name": "SHORT_DESC",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "384:48:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1690,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "384:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "73686f72745f64657363",
              "id": 1691,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "420:12:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_94c241f8e931f92c2d4b9c8bf91f277610ffbc69f83ddd91d5e8535e49fe7894",
                "typeString": "literal_string \"short_desc\""
              },
              "value": "short_desc"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1695,
            "name": "LONG_DESC",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "438:46:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1693,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "438:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6c6f6e675f64657363",
              "id": 1694,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "473:11:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_a47709c5db6426dae60658aa3fe6818a09dac224ef85f317a31b897413052755",
                "typeString": "literal_string \"long_desc\""
              },
              "value": "long_desc"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1698,
            "name": "ACTIVATED",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "490:46:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1696,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "490:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "616374697661746564",
              "id": 1697,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "525:11:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_8e4560b1c76dcaab13085db49759e742cb80a5f12ca42c8f7f7913ade5355774",
                "typeString": "literal_string \"activated\""
              },
              "value": "activated"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1701,
            "name": "ACTIVATED_DESC",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "542:56:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1699,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "542:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6163746976617465645f64657363",
              "id": 1700,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "582:16:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_ccee63c202a125b02af5a5e77f315d3215ca7213540d93dd5681868968d20de6",
                "typeString": "literal_string \"activated_desc\""
              },
              "value": "activated_desc"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1704,
            "name": "STARTED",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "604:42:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1702,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "604:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "73746172746564",
              "id": 1703,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "637:9:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_bdd2b11e12b62ec1dcb7f0672fc8eae42b5d96c951242139ad2dbc8a2569e4eb",
                "typeString": "literal_string \"started\""
              },
              "value": "started"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1707,
            "name": "STARTED_DESC",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "652:52:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1705,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "652:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "737461727465645f64657363",
              "id": 1706,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "690:14:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_5c92981455c27d95a2464971c30d3971b4e3448c0873d77560c26c6c715cb429",
                "typeString": "literal_string \"started_desc\""
              },
              "value": "started_desc"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1710,
            "name": "SUCCESSFUL",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "710:48:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1708,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "710:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7375636365737366756c",
              "id": 1709,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "746:12:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_998474758c0f70f185651ffc69b139036898106a3de291220847f99024d69713",
                "typeString": "literal_string \"successful\""
              },
              "value": "successful"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1713,
            "name": "SUCCESSFUL_DESC",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "764:58:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1711,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "764:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7375636365737366756c5f64657363",
              "id": 1712,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "805:17:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_fa652d4ac5399a9179176ae5663c874695f1a3c74fcd527b61f2f132d9bf8db1",
                "typeString": "literal_string \"successful_desc\""
              },
              "value": "successful_desc"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1716,
            "name": "FINISHED",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "828:44:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1714,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "828:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "66696e6973686564",
              "id": 1715,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "862:10:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_7b33a07f1644fab5bc0af6f7c06c8dceb370139ee7f9ae35b70dfee8eda3c95a",
                "typeString": "literal_string \"finished\""
              },
              "value": "finished"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 1719,
            "name": "FINISHED_DESC",
            "nodeType": "VariableDeclaration",
            "scope": 1885,
            "src": "878:54:7",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 1717,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "878:6:7",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "66696e69736865645f64657363",
              "id": 1718,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "917:15:7",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_8bfe26a592f469014ed861f0ead2fca390e4e2366175a9431c47320375d05d2e",
                "typeString": "literal_string \"finished_desc\""
              },
              "value": "finished_desc"
            },
            "visibility": "public"
          },
          {
            "body": {
              "id": 1883,
              "nodeType": "Block",
              "src": "1017:1397:7",
              "statements": [
                {
                  "condition": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": null,
                        "id": 1728,
                        "name": "_sale",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 1723,
                        "src": "1031:5:7",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_ERC20Sale_$444",
                          "typeString": "contract ERC20Sale"
                        }
                      },
                      "id": 1729,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "activated",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 2211,
                      "src": "1031:15:7",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                        "typeString": "function () view external returns (bool)"
                      }
                    },
                    "id": 1730,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1031:17:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 1881,
                    "nodeType": "Block",
                    "src": "2374:34:7",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "hexValue": "",
                          "id": 1879,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "string",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2395:2:7",
                          "subdenomination": null,
                          "typeDescriptions": {
                            "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                            "typeString": "literal_string \"\""
                          },
                          "value": ""
                        },
                        "functionReturnParameters": 1727,
                        "id": 1880,
                        "nodeType": "Return",
                        "src": "2388:9:7"
                      }
                    ]
                  },
                  "id": 1882,
                  "nodeType": "IfStatement",
                  "src": "1027:1381:7",
                  "trueBody": {
                    "id": 1878,
                    "nodeType": "Block",
                    "src": "1050:1318:7",
                    "statements": [
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1732,
                            "name": "status",
                            "nodeType": "VariableDeclaration",
                            "scope": 1884,
                            "src": "1064:20:7",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 1731,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "1064:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1733,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1064:20:7"
                      },
                      {
                        "assignments": [],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1735,
                            "name": "desc",
                            "nodeType": "VariableDeclaration",
                            "scope": 1884,
                            "src": "1098:18:7",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory_ptr",
                              "typeString": "string"
                            },
                            "typeName": {
                              "id": 1734,
                              "name": "string",
                              "nodeType": "ElementaryTypeName",
                              "src": "1098:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage_ptr",
                                "typeString": "string"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1736,
                        "initialValue": null,
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1098:18:7"
                      },
                      {
                        "condition": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1737,
                              "name": "_sale",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1723,
                              "src": "1134:5:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_ERC20Sale_$444",
                                "typeString": "contract ERC20Sale"
                              }
                            },
                            "id": 1738,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "finished",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 2724,
                            "src": "1134:14:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                              "typeString": "function () view external returns (bool)"
                            }
                          },
                          "id": 1739,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1134:16:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "arguments": [],
                            "expression": {
                              "argumentTypes": [],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1757,
                                "name": "_sale",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1723,
                                "src": "1290:5:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_ERC20Sale_$444",
                                  "typeString": "contract ERC20Sale"
                                }
                              },
                              "id": 1758,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "successful",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 2683,
                              "src": "1290:16:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                                "typeString": "function () view external returns (bool)"
                              }
                            },
                            "id": 1759,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1290:18:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "arguments": [],
                              "expression": {
                                "argumentTypes": [],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1777,
                                  "name": "_sale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1723,
                                  "src": "1452:5:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_ERC20Sale_$444",
                                    "typeString": "contract ERC20Sale"
                                  }
                                },
                                "id": 1778,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "started",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 2642,
                                "src": "1452:13:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_external_view$__$returns$_t_bool_$",
                                  "typeString": "function () view external returns (bool)"
                                }
                              },
                              "id": 1779,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1452:15:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "id": 1813,
                              "nodeType": "Block",
                              "src": "1601:130:7",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1803,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 1797,
                                      "name": "status",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1732,
                                      "src": "1619:6:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 1798,
                                          "name": "resources",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5678,
                                          "src": "1628:9:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                            "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                          }
                                        },
                                        "id": 1800,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 1799,
                                          "name": "_locale",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1721,
                                          "src": "1638:7:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "1628:18:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                          "typeString": "mapping(string memory => string storage ref)"
                                        }
                                      },
                                      "id": 1802,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 1801,
                                        "name": "ACTIVATED",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1698,
                                        "src": "1647:9:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "1628:29:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_storage",
                                        "typeString": "string storage ref"
                                      }
                                    },
                                    "src": "1619:38:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 1804,
                                  "nodeType": "ExpressionStatement",
                                  "src": "1619:38:7"
                                },
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1811,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 1805,
                                      "name": "desc",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1735,
                                      "src": "1675:4:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 1806,
                                          "name": "resources",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5678,
                                          "src": "1682:9:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                            "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                          }
                                        },
                                        "id": 1808,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 1807,
                                          "name": "_locale",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1721,
                                          "src": "1692:7:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "1682:18:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                          "typeString": "mapping(string memory => string storage ref)"
                                        }
                                      },
                                      "id": 1810,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 1809,
                                        "name": "ACTIVATED_DESC",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1701,
                                        "src": "1701:14:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "1682:34:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_storage",
                                        "typeString": "string storage ref"
                                      }
                                    },
                                    "src": "1675:41:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 1812,
                                  "nodeType": "ExpressionStatement",
                                  "src": "1675:41:7"
                                }
                              ]
                            },
                            "id": 1814,
                            "nodeType": "IfStatement",
                            "src": "1448:283:7",
                            "trueBody": {
                              "id": 1796,
                              "nodeType": "Block",
                              "src": "1469:126:7",
                              "statements": [
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1786,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 1780,
                                      "name": "status",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1732,
                                      "src": "1487:6:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 1781,
                                          "name": "resources",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5678,
                                          "src": "1496:9:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                            "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                          }
                                        },
                                        "id": 1783,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 1782,
                                          "name": "_locale",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1721,
                                          "src": "1506:7:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "1496:18:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                          "typeString": "mapping(string memory => string storage ref)"
                                        }
                                      },
                                      "id": 1785,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 1784,
                                        "name": "STARTED",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1704,
                                        "src": "1515:7:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "1496:27:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_storage",
                                        "typeString": "string storage ref"
                                      }
                                    },
                                    "src": "1487:36:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 1787,
                                  "nodeType": "ExpressionStatement",
                                  "src": "1487:36:7"
                                },
                                {
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1794,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftHandSide": {
                                      "argumentTypes": null,
                                      "id": 1788,
                                      "name": "desc",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1735,
                                      "src": "1541:4:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "nodeType": "Assignment",
                                    "operator": "=",
                                    "rightHandSide": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "baseExpression": {
                                          "argumentTypes": null,
                                          "id": 1789,
                                          "name": "resources",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5678,
                                          "src": "1548:9:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                            "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                          }
                                        },
                                        "id": 1791,
                                        "indexExpression": {
                                          "argumentTypes": null,
                                          "id": 1790,
                                          "name": "_locale",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 1721,
                                          "src": "1558:7:7",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory_ptr",
                                            "typeString": "string memory"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": true,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "1548:18:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                          "typeString": "mapping(string memory => string storage ref)"
                                        }
                                      },
                                      "id": 1793,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 1792,
                                        "name": "STARTED_DESC",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1707,
                                        "src": "1567:12:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "1548:32:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_storage",
                                        "typeString": "string storage ref"
                                      }
                                    },
                                    "src": "1541:39:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 1795,
                                  "nodeType": "ExpressionStatement",
                                  "src": "1541:39:7"
                                }
                              ]
                            }
                          },
                          "id": 1815,
                          "nodeType": "IfStatement",
                          "src": "1286:445:7",
                          "trueBody": {
                            "id": 1776,
                            "nodeType": "Block",
                            "src": "1310:132:7",
                            "statements": [
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1766,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 1760,
                                    "name": "status",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1732,
                                    "src": "1328:6:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "id": 1761,
                                        "name": "resources",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5678,
                                        "src": "1337:9:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                          "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                        }
                                      },
                                      "id": 1763,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 1762,
                                        "name": "_locale",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1721,
                                        "src": "1347:7:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "1337:18:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                        "typeString": "mapping(string memory => string storage ref)"
                                      }
                                    },
                                    "id": 1765,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1764,
                                      "name": "SUCCESSFUL",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1710,
                                      "src": "1356:10:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "1337:30:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_storage",
                                      "typeString": "string storage ref"
                                    }
                                  },
                                  "src": "1328:39:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "id": 1767,
                                "nodeType": "ExpressionStatement",
                                "src": "1328:39:7"
                              },
                              {
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 1774,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftHandSide": {
                                    "argumentTypes": null,
                                    "id": 1768,
                                    "name": "desc",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1735,
                                    "src": "1385:4:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "nodeType": "Assignment",
                                  "operator": "=",
                                  "rightHandSide": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "baseExpression": {
                                        "argumentTypes": null,
                                        "id": 1769,
                                        "name": "resources",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 5678,
                                        "src": "1392:9:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                          "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                        }
                                      },
                                      "id": 1771,
                                      "indexExpression": {
                                        "argumentTypes": null,
                                        "id": 1770,
                                        "name": "_locale",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 1721,
                                        "src": "1402:7:7",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory_ptr",
                                          "typeString": "string memory"
                                        }
                                      },
                                      "isConstant": false,
                                      "isLValue": true,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "nodeType": "IndexAccess",
                                      "src": "1392:18:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                        "typeString": "mapping(string memory => string storage ref)"
                                      }
                                    },
                                    "id": 1773,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1772,
                                      "name": "SUCCESSFUL_DESC",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1713,
                                      "src": "1411:15:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "1392:35:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_storage",
                                      "typeString": "string storage ref"
                                    }
                                  },
                                  "src": "1385:42:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "id": 1775,
                                "nodeType": "ExpressionStatement",
                                "src": "1385:42:7"
                              }
                            ]
                          }
                        },
                        "id": 1816,
                        "nodeType": "IfStatement",
                        "src": "1130:601:7",
                        "trueBody": {
                          "id": 1756,
                          "nodeType": "Block",
                          "src": "1152:128:7",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1746,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 1740,
                                  "name": "status",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1732,
                                  "src": "1170:6:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 1741,
                                      "name": "resources",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5678,
                                      "src": "1179:9:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                        "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                      }
                                    },
                                    "id": 1743,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1742,
                                      "name": "_locale",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1721,
                                      "src": "1189:7:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "1179:18:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                      "typeString": "mapping(string memory => string storage ref)"
                                    }
                                  },
                                  "id": 1745,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 1744,
                                    "name": "FINISHED",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1716,
                                    "src": "1198:8:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1179:28:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  }
                                },
                                "src": "1170:37:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              "id": 1747,
                              "nodeType": "ExpressionStatement",
                              "src": "1170:37:7"
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 1754,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 1748,
                                  "name": "desc",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1735,
                                  "src": "1225:4:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "baseExpression": {
                                    "argumentTypes": null,
                                    "baseExpression": {
                                      "argumentTypes": null,
                                      "id": 1749,
                                      "name": "resources",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5678,
                                      "src": "1232:9:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                        "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                      }
                                    },
                                    "id": 1751,
                                    "indexExpression": {
                                      "argumentTypes": null,
                                      "id": 1750,
                                      "name": "_locale",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 1721,
                                      "src": "1242:7:7",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory_ptr",
                                        "typeString": "string memory"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "1232:18:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                      "typeString": "mapping(string memory => string storage ref)"
                                    }
                                  },
                                  "id": 1753,
                                  "indexExpression": {
                                    "argumentTypes": null,
                                    "id": 1752,
                                    "name": "FINISHED_DESC",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1719,
                                    "src": "1251:13:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "1232:33:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  }
                                },
                                "src": "1225:40:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              "id": 1755,
                              "nodeType": "ExpressionStatement",
                              "src": "1225:40:7"
                            }
                          ]
                        }
                      },
                      {
                        "assignments": [
                          1821
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1821,
                            "name": "elements",
                            "nodeType": "VariableDeclaration",
                            "scope": 1884,
                            "src": "1744:34:7",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_struct$_Element_$5466_memory_$dyn_memory_ptr",
                              "typeString": "struct Elements.Element[]"
                            },
                            "typeName": {
                              "baseType": {
                                "contractScope": null,
                                "id": 1819,
                                "name": "Elements.Element",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 5466,
                                "src": "1744:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Element_$5466_storage_ptr",
                                  "typeString": "struct Elements.Element"
                                }
                              },
                              "id": 1820,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "1744:18:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$5466_storage_$dyn_storage_ptr",
                                "typeString": "struct Elements.Element[]"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1827,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "hexValue": "31",
                              "id": 1825,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1804:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              }
                            ],
                            "id": 1824,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "NewExpression",
                            "src": "1781:22:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_Element_$5466_memory_$dyn_memory_$",
                              "typeString": "function (uint256) pure returns (struct Elements.Element memory[] memory)"
                            },
                            "typeName": {
                              "baseType": {
                                "contractScope": null,
                                "id": 1822,
                                "name": "Elements.Element",
                                "nodeType": "UserDefinedTypeName",
                                "referencedDeclaration": 5466,
                                "src": "1785:16:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Element_$5466_storage_ptr",
                                  "typeString": "struct Elements.Element"
                                }
                              },
                              "id": 1823,
                              "length": null,
                              "nodeType": "ArrayTypeName",
                              "src": "1785:18:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$5466_storage_$dyn_storage_ptr",
                                "typeString": "struct Elements.Element[]"
                              }
                            }
                          },
                          "id": 1826,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1781:25:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_struct$_Element_$5466_memory_$dyn_memory",
                            "typeString": "struct Elements.Element memory[] memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "1744:62:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 1847,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "baseExpression": {
                              "argumentTypes": null,
                              "id": 1828,
                              "name": "elements",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1821,
                              "src": "1820:8:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$5466_memory_$dyn_memory_ptr",
                                "typeString": "struct Elements.Element memory[] memory"
                              }
                            },
                            "id": 1830,
                            "indexExpression": {
                              "argumentTypes": null,
                              "hexValue": "30",
                              "id": 1829,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1829:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "1820:11:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Element_$5466_memory",
                              "typeString": "struct Elements.Element memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "74727565",
                                "id": 1833,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1868:4:7",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              {
                                "argumentTypes": null,
                                "id": 1834,
                                "name": "SALE_STATUS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1689,
                                "src": "1890:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "hexValue": "74657874",
                                "id": 1835,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "string",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "1919:6:7",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_stringliteral_9599d5e4e43121196cadfeaea326e46f58d9db74299decfd64bd3b700350ccd9",
                                  "typeString": "literal_string \"text\""
                                },
                                "value": "text"
                              },
                              {
                                "argumentTypes": null,
                                "id": 1836,
                                "name": "status",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1732,
                                "src": "1943:6:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1837,
                                    "name": "desc",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 1735,
                                    "src": "1967:4:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory_ptr",
                                      "typeString": "string memory"
                                    }
                                  },
                                  "id": 1838,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "quoted",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 3503,
                                  "src": "1967:11:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_string_memory_ptr_$",
                                    "typeString": "function (string memory) pure returns (string memory)"
                                  }
                                },
                                "id": 1839,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1967:13:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1840,
                                    "name": "Actions",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5438,
                                    "src": "1998:7:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Actions_$5438_$",
                                      "typeString": "type(library Actions)"
                                    }
                                  },
                                  "id": 1841,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "empty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 5326,
                                  "src": "1998:13:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Action_$5310_memory_ptr_$",
                                    "typeString": "function () pure returns (struct Actions.Action memory)"
                                  }
                                },
                                "id": 1842,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "1998:15:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Action_$5310_memory_ptr",
                                  "typeString": "struct Actions.Action memory"
                                }
                              },
                              {
                                "argumentTypes": null,
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 1843,
                                    "name": "Tables",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6071,
                                    "src": "2031:6:7",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Tables_$6071_$",
                                      "typeString": "type(library Tables)"
                                    }
                                  },
                                  "id": 1844,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "empty",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 5787,
                                  "src": "2031:12:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$__$returns$_t_struct$_Table_$5767_memory_ptr_$",
                                    "typeString": "function () pure returns (struct Tables.Table memory)"
                                  }
                                },
                                "id": 1845,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2031:14:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_Table_$5767_memory_ptr",
                                  "typeString": "struct Tables.Table memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_stringliteral_9599d5e4e43121196cadfeaea326e46f58d9db74299decfd64bd3b700350ccd9",
                                  "typeString": "literal_string \"text\""
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_string_memory_ptr",
                                  "typeString": "string memory"
                                },
                                {
                                  "typeIdentifier": "t_struct$_Action_$5310_memory_ptr",
                                  "typeString": "struct Actions.Action memory"
                                },
                                {
                                  "typeIdentifier": "t_struct$_Table_$5767_memory_ptr",
                                  "typeString": "struct Tables.Table memory"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 1831,
                                "name": "Elements",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5667,
                                "src": "1834:8:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Elements_$5667_$",
                                  "typeString": "type(library Elements)"
                                }
                              },
                              "id": 1832,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "Element",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 5466,
                              "src": "1834:16:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_struct$_Element_$5466_storage_ptr_$",
                                "typeString": "type(struct Elements.Element storage pointer)"
                              }
                            },
                            "id": 1846,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "structConstructorCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "1834:225:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Element_$5466_memory",
                              "typeString": "struct Elements.Element memory"
                            }
                          },
                          "src": "1820:239:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Element_$5466_memory",
                            "typeString": "struct Elements.Element memory"
                          }
                        },
                        "id": 1848,
                        "nodeType": "ExpressionStatement",
                        "src": "1820:239:7"
                      },
                      {
                        "assignments": [
                          1852
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 1852,
                            "name": "widget",
                            "nodeType": "VariableDeclaration",
                            "scope": 1884,
                            "src": "2073:28:7",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_Widget_$6096_memory_ptr",
                              "typeString": "struct Widgets.Widget"
                            },
                            "typeName": {
                              "contractScope": null,
                              "id": 1851,
                              "name": "Widgets.Widget",
                              "nodeType": "UserDefinedTypeName",
                              "referencedDeclaration": 6096,
                              "src": "2073:14:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Widget_$6096_storage_ptr",
                                "typeString": "struct Widgets.Widget"
                              }
                            },
                            "value": null,
                            "visibility": "internal"
                          }
                        ],
                        "id": 1873,
                        "initialValue": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 1855,
                                  "name": "resources",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5678,
                                  "src": "2136:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                    "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                  }
                                },
                                "id": 1857,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 1856,
                                  "name": "_locale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1721,
                                  "src": "2146:7:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2136:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                  "typeString": "mapping(string memory => string storage ref)"
                                }
                              },
                              "id": 1859,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1858,
                                "name": "SALE_STATUS",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1689,
                                "src": "2155:11:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2136:31:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 1860,
                                  "name": "resources",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5678,
                                  "src": "2185:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                    "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                  }
                                },
                                "id": 1862,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 1861,
                                  "name": "_locale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1721,
                                  "src": "2195:7:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2185:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                  "typeString": "mapping(string memory => string storage ref)"
                                }
                              },
                              "id": 1864,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1863,
                                "name": "SHORT_DESC",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1692,
                                "src": "2204:10:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2185:30:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "baseExpression": {
                                "argumentTypes": null,
                                "baseExpression": {
                                  "argumentTypes": null,
                                  "id": 1865,
                                  "name": "resources",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5678,
                                  "src": "2233:9:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_mapping$_t_string_memory_$_t_mapping$_t_string_memory_$_t_string_storage_$_$",
                                    "typeString": "mapping(string memory => mapping(string memory => string storage ref))"
                                  }
                                },
                                "id": 1867,
                                "indexExpression": {
                                  "argumentTypes": null,
                                  "id": 1866,
                                  "name": "_locale",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 1721,
                                  "src": "2243:7:7",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory_ptr",
                                    "typeString": "string memory"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "2233:18:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_mapping$_t_string_memory_$_t_string_storage_$",
                                  "typeString": "mapping(string memory => string storage ref)"
                                }
                              },
                              "id": 1869,
                              "indexExpression": {
                                "argumentTypes": null,
                                "id": 1868,
                                "name": "LONG_DESC",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 1695,
                                "src": "2252:9:7",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "2233:29:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              }
                            },
                            {
                              "argumentTypes": null,
                              "hexValue": "34",
                              "id": 1870,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2280:1:7",
                              "subdenomination": null,
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_4_by_1",
                                "typeString": "int_const 4"
                              },
                              "value": "4"
                            },
                            {
                              "argumentTypes": null,
                              "id": 1871,
                              "name": "elements",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1821,
                              "src": "2299:8:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_struct$_Element_$5466_memory_$dyn_memory_ptr",
                                "typeString": "struct Elements.Element memory[] memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              },
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              },
                              {
                                "typeIdentifier": "t_string_storage",
                                "typeString": "string storage ref"
                              },
                              {
                                "typeIdentifier": "t_rational_4_by_1",
                                "typeString": "int_const 4"
                              },
                              {
                                "typeIdentifier": "t_array$_t_struct$_Element_$5466_memory_$dyn_memory_ptr",
                                "typeString": "struct Elements.Element memory[] memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1853,
                              "name": "Widgets",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6258,
                              "src": "2104:7:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Widgets_$6258_$",
                                "typeString": "type(library Widgets)"
                              }
                            },
                            "id": 1854,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "Widget",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6096,
                            "src": "2104:14:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_struct$_Widget_$6096_storage_ptr_$",
                              "typeString": "type(struct Widgets.Widget storage pointer)"
                            }
                          },
                          "id": 1872,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "structConstructorCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2104:217:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Widget_$6096_memory",
                            "typeString": "struct Widgets.Widget memory"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2073:248:7"
                      },
                      {
                        "expression": {
                          "argumentTypes": null,
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "expression": {
                              "argumentTypes": null,
                              "id": 1874,
                              "name": "widget",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1852,
                              "src": "2342:6:7",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_Widget_$6096_memory_ptr",
                                "typeString": "struct Widgets.Widget memory"
                              }
                            },
                            "id": 1875,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "toJson",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 6257,
                            "src": "2342:13:7",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_struct$_Widget_$6096_memory_ptr_$returns$_t_string_memory_ptr_$bound_to$_t_struct$_Widget_$6096_memory_ptr_$",
                              "typeString": "function (struct Widgets.Widget memory) pure returns (string memory)"
                            }
                          },
                          "id": 1876,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2342:15:7",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory_ptr",
                            "typeString": "string memory"
                          }
                        },
                        "functionReturnParameters": 1727,
                        "id": 1877,
                        "nodeType": "Return",
                        "src": "2335:22:7"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 1884,
            "implemented": true,
            "isConstructor": false,
            "isDeclaredConst": true,
            "modifiers": [],
            "name": "render",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 1724,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1721,
                  "name": "_locale",
                  "nodeType": "VariableDeclaration",
                  "scope": 1884,
                  "src": "955:14:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1720,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "955:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 1723,
                  "name": "_sale",
                  "nodeType": "VariableDeclaration",
                  "scope": 1884,
                  "src": "971:15:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_ERC20Sale_$444",
                    "typeString": "contract ERC20Sale"
                  },
                  "typeName": {
                    "contractScope": null,
                    "id": 1722,
                    "name": "ERC20Sale",
                    "nodeType": "UserDefinedTypeName",
                    "referencedDeclaration": 444,
                    "src": "971:9:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_ERC20Sale_$444",
                      "typeString": "contract ERC20Sale"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "954:33:7"
            },
            "payable": false,
            "returnParameters": {
              "id": 1727,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 1726,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 1884,
                  "src": "1009:6:7",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 1725,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1009:6:7",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1008:8:7"
            },
            "scope": 1885,
            "src": "939:1475:7",
            "stateMutability": "view",
            "superFunction": 1201,
            "visibility": "public"
          }
        ],
        "scope": 1886,
        "src": "188:2228:7"
      }
    ],
    "src": "0:2417:7"
  },
  "compiler": {
    "name": "solc",
    "version": "0.4.24+commit.e67f0147.Emscripten.clang"
  },
  "networks": {
    "1": {
      "events": {},
      "links": {},
      "address": "0xdf2a0c2e2db2f5de586681782ebca1c784868721",
      "transactionHash": "0xa865134b2aa5ca047a9cc9787ada1f0645671a2fccd7a5feca55a4dbd48ffd2a"
    },
    "3": {
      "events": {},
      "links": {},
      "address": "0x983e2abcacffc6f84ea9d384ab6c75eed839b284",
      "transactionHash": "0xd8992afbe3bdc440c85b88c4470ba1bfa499b712b47a1b68b14886a0aca72b70"
    }
  },
  "schemaVersion": "2.0.1",
  "updatedAt": "2018-11-01T09:28:40.930Z"
}