{
  "_format": "hh-sol-artifact-1",
  "contractName": "WitnetParserLib",
  "sourceName": "witnet-solidity-bridge/contracts/libs/WitnetParserLib.sol",
  "abi": [
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "name": "asBool",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "name": "asBytes",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "name": "asBytes32",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "name": "asErrorCode",
      "outputs": [
        {
          "internalType": "enum Witnet.ErrorCodes",
          "name": "",
          "type": "Witnet.ErrorCodes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "name": "asErrorMessage",
      "outputs": [
        {
          "internalType": "enum Witnet.ErrorCodes",
          "name": "",
          "type": "Witnet.ErrorCodes"
        },
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "name": "asFixed16",
      "outputs": [
        {
          "internalType": "int32",
          "name": "",
          "type": "int32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "name": "asFixed16Array",
      "outputs": [
        {
          "internalType": "int32[]",
          "name": "",
          "type": "int32[]"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "name": "asInt128",
      "outputs": [
        {
          "internalType": "int128",
          "name": "",
          "type": "int128"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "name": "asInt128Array",
      "outputs": [
        {
          "internalType": "int128[]",
          "name": "",
          "type": "int128[]"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "name": "asRawError",
      "outputs": [
        {
          "internalType": "uint64[]",
          "name": "",
          "type": "uint64[]"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "name": "asString",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "name": "asStringArray",
      "outputs": [
        {
          "internalType": "string[]",
          "name": "",
          "type": "string[]"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "name": "asUint64",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "name": "asUint64Array",
      "outputs": [
        {
          "internalType": "uint64[]",
          "name": "",
          "type": "uint64[]"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "name": "isError",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "_result",
          "type": "tuple"
        }
      ],
      "name": "isOk",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_cborBytes",
          "type": "bytes"
        }
      ],
      "name": "resultFromCborBytes",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                },
                {
                  "internalType": "uint32",
                  "name": "cursor",
                  "type": "uint32"
                }
              ],
              "internalType": "struct Witnet.Buffer",
              "name": "buffer",
              "type": "tuple"
            },
            {
              "internalType": "uint8",
              "name": "initialByte",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "majorType",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "additionalInformation",
              "type": "uint8"
            },
            {
              "internalType": "uint64",
              "name": "len",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "tag",
              "type": "uint64"
            }
          ],
          "internalType": "struct Witnet.CBOR",
          "name": "_cborValue",
          "type": "tuple"
        }
      ],
      "name": "resultFromCborValue",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bool",
              "name": "success",
              "type": "bool"
            },
            {
              "components": [
                {
                  "components": [
                    {
                      "internalType": "bytes",
                      "name": "data",
                      "type": "bytes"
                    },
                    {
                      "internalType": "uint32",
                      "name": "cursor",
                      "type": "uint32"
                    }
                  ],
                  "internalType": "struct Witnet.Buffer",
                  "name": "buffer",
                  "type": "tuple"
                },
                {
                  "internalType": "uint8",
                  "name": "initialByte",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "majorType",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "additionalInformation",
                  "type": "uint8"
                },
                {
                  "internalType": "uint64",
                  "name": "len",
                  "type": "uint64"
                },
                {
                  "internalType": "uint64",
                  "name": "tag",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Witnet.CBOR",
              "name": "value",
              "type": "tuple"
            }
          ],
          "internalType": "struct Witnet.Result",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint64",
          "name": "_stageIndex",
          "type": "uint64"
        }
      ],
      "name": "stageName",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x614f53610053600b82828239805160001a607314610046577f4e487b7100000000000000000000000000000000000000000000000000000000600052600060045260246000fd5b30600052607381538281f3fe730000000000000000000000000000000000000000301460806040526004361061012b5760003560e01c8063a1d45d56116100b7578063d45d097d1161007b578063d45d097d146103d1578063d8868db614610401578063e99e47f314610431578063f417daf514610461578063fc853c37146104915761012b565b8063a1d45d56146102e1578063a2e8765514610311578063abf82f4c14610341578063c71db52114610371578063cb5371c0146103a15761012b565b80632d26b9e2116100fe5780632d26b9e2146101f05780636646c119146102205780638233f9b3146102505780638cc5eb5414610280578063a1b90891146102b15761012b565b80630879730d1461013057806308efc09714610160578063130283ee14610190578063147e5c8f146101c0575b600080fd5b61014a60048036038101906101459190612ccf565b6104c1565b6040516101579190613b74565b60405180910390f35b61017a60048036038101906101759190612ccf565b6105a1565b6040516101879190613b30565b60405180910390f35b6101aa60048036038101906101a59190612c3d565b610680565b6040516101b79190613e33565b60405180910390f35b6101da60048036038101906101d59190612ccf565b6106be565b6040516101e79190613b74565b60405180910390f35b61020a60048036038101906102059190612ccf565b61079d565b6040516102179190613b52565b60405180910390f35b61023a60048036038101906102359190612ccf565b61087c565b6040516102479190613b96565b60405180910390f35b61026a60048036038101906102659190612ccf565b61088a565b6040516102779190613e55565b60405180910390f35b61029a60048036038101906102959190612ccf565b610964565b6040516102a8929190613c09565b60405180910390f35b6102cb60048036038101906102c69190612ccf565b611390565b6040516102d89190613bcc565b60405180910390f35b6102fb60048036038101906102f69190612ccf565b61146f565b6040516103089190613b96565b60405180910390f35b61032b60048036038101906103269190612ccf565b61147e565b6040516103389190613bb1565b60405180910390f35b61035b60048036038101906103569190612ccf565b611558565b6040516103689190613b96565b60405180910390f35b61038b60048036038101906103869190612ccf565b611632565b6040516103989190613c39565b60405180910390f35b6103bb60048036038101906103b69190612d18565b61170c565b6040516103c89190613c6f565b60405180910390f35b6103eb60048036038101906103e69190612ccf565b61183c565b6040516103f89190613bee565b60405180910390f35b61041b60048036038101906104169190612ccf565b61188b565b6040516104289190613c54565b60405180910390f35b61044b60048036038101906104469190612b04565b611965565b6040516104589190613e33565b60405180910390f35b61047b60048036038101906104769190612ccf565b611a55565b6040516104889190613c6f565b60405180910390f35b6104ab60048036038101906104a69190612ccf565b611b34565b6040516104b89190613b0e565b60405180910390f35b6060816000015115610508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ff90613db1565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__63f8a597d390916040518263ffffffff1660e01b81526004016105459190613e11565b60006040518083038186803b15801561055d57600080fd5b505af4158015610571573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061059a9190612a61565b9050919050565b606081600001516105e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105de90613cd1565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__63531f4ba790916040518263ffffffff1660e01b81526004016106249190613e11565b60006040518083038186803b15801561063c57600080fd5b505af4158015610650573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061067991906129cf565b9050919050565b61068861210c565b600060278360a0015167ffffffffffffffff16141590506040518060400160405280821515815260200184815250915050919050565b60608160000151610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb90613d31565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__63f8a597d390916040518263ffffffff1660e01b81526004016107419190613e11565b60006040518083038186803b15801561075957600080fd5b505af415801561076d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107969190612a61565b9050919050565b606081600001516107e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107da90613d51565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__63c5e88ff290916040518263ffffffff1660e01b81526004016108209190613e11565b60006040518083038186803b15801561083857600080fd5b505af415801561084c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906108759190612a18565b9050919050565b600081600001519050919050565b600081600001516108d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c790613d11565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__637a8acab190916040518263ffffffff1660e01b815260040161090d9190613e11565b60206040518083038186803b15801561092557600080fd5b505af4158015610939573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095d9190612d45565b9050919050565b600060606000610973846104c1565b90506000815114156109c15760006040518060400160405280601d81526020017f556e6b6e6f776e206572726f7220286e6f206572726f7220636f646529000000815250925092505061138b565b60006109e7826000815181106109da576109d9614320565b5b6020026020010151611c13565b90506060600160ff8111156109ff576109fe6142f1565b5b8260ff811115610a1257610a116142f1565b5b148015610a2157506002835110155b15610a7057610a4a83600181518110610a3d57610a3c614320565b5b6020026020010151611c39565b604051602001610a5a9190613892565b6040516020818303038152906040529050611381565b600260ff811115610a8457610a836142f1565b5b8260ff811115610a9757610a966142f1565b5b148015610aa657506002835110155b15610af557610acf83600181518110610ac257610ac1614320565b5b6020026020010151611c39565b604051602001610adf91906138bf565b6040516020818303038152906040529050611380565b600360ff811115610b0957610b086142f1565b5b8260ff811115610b1c57610b1b6142f1565b5b148015610b2b57506002835110155b15610b7a57610b5483600181518110610b4757610b46614320565b5b6020026020010151611c39565b604051602001610b6491906138ec565b604051602081830303815290604052905061137f565b601060ff811115610b8e57610b8d6142f1565b5b8260ff811115610ba157610ba06142f1565b5b148015610bb057506002835110155b15610bff57610bd983600181518110610bcc57610bcb614320565b5b6020026020010151611c39565b604051602001610be99190613a03565b604051602081830303815290604052905061137e565b601160ff811115610c1357610c126142f1565b5b8260ff811115610c2657610c256142f1565b5b148015610c3557506004835110155b15610cce57610c5e83600281518110610c5157610c50614320565b5b6020026020010151611c39565b610c8284600181518110610c7557610c74614320565b5b602002602001015161170c565b610ca685600381518110610c9957610c98614320565b5b6020026020010151611c39565b604051602001610cb893929190613a30565b604051602081830303815290604052905061137d565b602060ff811115610ce257610ce16142f1565b5b8260ff811115610cf557610cf46142f1565b5b148015610d0457506005835110155b15610dc257610d2d83600481518110610d2057610d1f614320565b5b6020026020010151611fad565b610d5184600381518110610d4457610d43614320565b5b6020026020010151611c39565b610d7585600281518110610d6857610d67614320565b5b6020026020010151611c39565b610d9986600181518110610d8c57610d8b614320565b5b602002602001015161170c565b604051602001610dac949392919061381d565b604051602081830303815290604052905061137c565b603060ff811115610dd657610dd56142f1565b5b8260ff811115610de957610de86142f1565b5b148015610df857506003835110155b15610ee657610e2183600181518110610e1457610e13614320565b5b6020026020010151611c39565b610e51606485600281518110610e3a57610e39614320565b5b6020026020010151610e4c9190614138565b611c39565b610e8d600a606487600281518110610e6c57610e6b614320565b5b6020026020010151610e7e9190614262565b610e889190614138565b611c39565b610ebd600a87600281518110610ea657610ea5614320565b5b6020026020010151610eb89190614262565b611c39565b604051602001610ed09493929190613a8d565b604051602081830303815290604052905061137b565b603160ff811115610efa57610ef96142f1565b5b8260ff811115610f0d57610f0c6142f1565b5b148015610f1c57506002835110155b15610f6b57610f4583600181518110610f3857610f37614320565b5b6020026020010151611c39565b604051602001610f559190613ae1565b604051602081830303815290604052905061137a565b604060ff811115610f7f57610f7e6142f1565b5b8260ff811115610f9257610f916142f1565b5b148015610fa157506005835110155b1561105f57610fca83600481518110610fbd57610fbc614320565b5b6020026020010151611fad565b610fee84600381518110610fe157610fe0614320565b5b6020026020010151611c39565b6110128560028151811061100557611004614320565b5b6020026020010151611c39565b6110368660018151811061102957611028614320565b5b602002602001015161170c565b60405160200161104994939291906137a8565b6040516020818303038152906040529050611379565b604160ff811115611073576110726142f1565b5b8260ff811115611086576110856142f1565b5b14801561109557506005835110155b15611153576110be836004815181106110b1576110b0614320565b5b6020026020010151611fad565b6110e2846003815181106110d5576110d4614320565b5b6020026020010151611c39565b611106856002815181106110f9576110f8614320565b5b6020026020010151611c39565b61112a8660018151811061111d5761111c614320565b5b602002602001015161170c565b60405160200161113d949392919061398e565b6040516020818303038152906040529050611378565b604260ff811115611167576111666142f1565b5b8260ff81111561117a576111796142f1565b5b14801561118957506005835110155b15611247576111b2836004815181106111a5576111a4614320565b5b6020026020010151611fad565b6111d6846003815181106111c9576111c8614320565b5b6020026020010151611c39565b6111fa856002815181106111ed576111ec614320565b5b6020026020010151611c39565b61121e8660018151811061121157611210614320565b5b602002602001015161170c565b6040516020016112319493929190613919565b6040516020818303038152906040529050611377565b60e060ff81111561125b5761125a6142f1565b5b8260ff81111561126e5761126d6142f1565b5b1415611294576040518060600160405280603f8152602001614e57603f91399050611376565b60e160ff8111156112a8576112a76142f1565b5b8260ff8111156112bb576112ba6142f1565b5b14156112e157604051806080016040528060478152602001614ed7604791399050611375565b60e260ff8111156112f5576112f46142f1565b5b8260ff811115611308576113076142f1565b5b141561132e57604051806080016040528060418152602001614e96604191399050611374565b6113528360008151811061134557611344614320565b5b6020026020010151611fad565b604051602001611362919061377b565b60405160208183030381529060405290505b5b5b5b5b5b5b5b5b5b5b5b5b5b8181945094505050505b915091565b606081600001516113d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cd90613c91565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__63bb6ef6cf90916040518263ffffffff1660e01b81526004016114139190613e11565b60006040518083038186803b15801561142b57600080fd5b505af415801561143f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906114689190612b51565b9050919050565b60008160000151159050919050565b600081600001516114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb90613d71565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__6308c05c3390916040518263ffffffff1660e01b81526004016115019190613e11565b60206040518083038186803b15801561151957600080fd5b505af415801561152d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115519190612ad7565b9050919050565b6000816000015161159e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159590613dd1565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__639eee60ca90916040518263ffffffff1660e01b81526004016115db9190613e11565b60206040518083038186803b1580156115f357600080fd5b505af4158015611607573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162b9190612aaa565b9050919050565b60008160000151611678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166f90613cf1565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__6394863ea490916040518263ffffffff1660e01b81526004016116b59190613e11565b60206040518083038186803b1580156116cd57600080fd5b505af41580156116e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117059190612b9a565b9050919050565b606060008267ffffffffffffffff16141561175e576040518060400160405280600981526020017f72657472696576616c00000000000000000000000000000000000000000000008152509050611837565b60018267ffffffffffffffff1614156117ae576040518060400160405280600b81526020017f6167677265676174696f6e0000000000000000000000000000000000000000008152509050611837565b60028267ffffffffffffffff1614156117fe576040518060400160405280600581526020017f74616c6c790000000000000000000000000000000000000000000000000000008152509050611837565b6040518060400160405280600781526020017f756e6b6e6f776e0000000000000000000000000000000000000000000000000081525090505b919050565b600080611848836104c1565b905060008151141561185e576000915050611886565b6118828160008151811061187557611874614320565b5b6020026020010151611c13565b9150505b919050565b600081600001516118d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c890613df1565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__638138799a90916040518263ffffffff1660e01b815260040161190e9190613e11565b60206040518083038186803b15801561192657600080fd5b505af415801561193a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195e9190612bc7565b9050919050565b61196d61210c565b600083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505073__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__63dfca5d3490916040518263ffffffff1660e01b81526004016119ec9190613bcc565b60006040518083038186803b158015611a0457600080fd5b505af4158015611a18573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611a419190612c86565b9050611a4c81610680565b91505092915050565b60608160000151611a9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9290613d91565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__63e67c5bd190916040518263ffffffff1660e01b8152600401611ad89190613e11565b60006040518083038186803b158015611af057600080fd5b505af4158015611b04573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b2d9190612bf4565b9050919050565b60608160000151611b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7190613cb1565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__633380d81690916040518263ffffffff1660e01b8152600401611bb79190613e11565b60006040518083038186803b158015611bcf57600080fd5b505af4158015611be3573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611c0c9190612986565b9050919050565b60008167ffffffffffffffff1660ff811115611c3257611c316142f1565b5b9050919050565b6060600a8267ffffffffffffffff161015611cfc576000600167ffffffffffffffff811115611c6b57611c6a61434f565b5b6040519080825280601f01601f191660200182016040528015611c9d5781602001600182028036833780820191505090505b509050603083611cad9190614101565b60f81b81600081518110611cc457611cc3614320565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080915050611fa8565b60648267ffffffffffffffff161015611e28576000600267ffffffffffffffff811115611d2c57611d2b61434f565b5b6040519080825280601f01601f191660200182016040528015611d5e5781602001600182028036833780820191505090505b5090506030600a84611d709190614138565b611d7a9190614101565b60f81b81600081518110611d9157611d90614320565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506030600a84611dcf9190614262565b611dd99190614101565b60f81b81600181518110611df057611def614320565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080915050611fa8565b6000600367ffffffffffffffff811115611e4557611e4461434f565b5b6040519080825280601f01601f191660200182016040528015611e775781602001600182028036833780820191505090505b5090506030606484611e899190614138565b611e939190614101565b60f81b81600081518110611eaa57611ea9614320565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506030600a606485611eea9190614262565b611ef49190614138565b611efe9190614101565b60f81b81600181518110611f1557611f14614320565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506030600a84611f539190614262565b611f5d9190614101565b60f81b81600281518110611f7457611f73614320565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350809150505b919050565b60606000600267ffffffffffffffff811115611fcc57611fcb61434f565b5b6040519080825280601f01601f191660200182016040528015611ffe5781602001600182028036833780820191505090505b509050600060306010856120129190614138565b61201c9190614101565b90506000603060108661202f9190614262565b6120399190614101565b905060398260ff161115612057576007826120549190614101565b91505b60398160ff161115612073576007816120709190614101565b90505b8160f81b8360008151811061208b5761208a614320565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060f81b836001815181106120d2576120d1614320565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350829350505050919050565b604051806040016040528060001515815260200161212861212e565b81525090565b6040518060c00160405280612141612187565b8152602001600060ff168152602001600060ff168152602001600060ff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681525090565b604051806040016040528060608152602001600063ffffffff1681525090565b60006121ba6121b584613e95565b613e70565b905080838252602082019050828560208602820111156121dd576121dc614392565b5b60005b8581101561220d57816121f388826125f4565b8452602084019350602083019250506001810190506121e0565b5050509392505050565b600061222a61222584613ec1565b613e70565b9050808382526020820190508285602086028201111561224d5761224c614392565b5b60005b8581101561227d57816122638882612609565b845260208401935060208301925050600181019050612250565b5050509392505050565b600061229a61229584613eed565b613e70565b905080838252602082019050828560208602820111156122bd576122bc614392565b5b60005b8581101561230b57815167ffffffffffffffff8111156122e3576122e2614383565b5b8086016122f0898261261e565b855260208501945060208401935050506001810190506122c0565b5050509392505050565b600061232861232384613f19565b613e70565b9050808382526020820190508285602086028201111561234b5761234a614392565b5b60005b8581101561237b57816123618882612947565b84526020840193506020830192505060018101905061234e565b5050509392505050565b600061239861239384613f45565b613e70565b9050828152602081018484840111156123b4576123b3614397565b5b6123bf8482856141ef565b509392505050565b60006123da6123d584613f45565b613e70565b9050828152602081018484840111156123f6576123f5614397565b5b6124018482856141fe565b509392505050565b600061241c61241784613f76565b613e70565b90508281526020810184848401111561243857612437614397565b5b6124438482856141fe565b509392505050565b600082601f8301126124605761245f614383565b5b81516124708482602086016121a7565b91505092915050565b600082601f83011261248e5761248d614383565b5b815161249e848260208601612217565b91505092915050565b600082601f8301126124bc576124bb614383565b5b81516124cc848260208601612287565b91505092915050565b600082601f8301126124ea576124e9614383565b5b81516124fa848260208601612315565b91505092915050565b60008135905061251281614db5565b92915050565b60008151905061252781614db5565b92915050565b60008151905061253c81614dcc565b92915050565b60008083601f84011261255857612557614383565b5b8235905067ffffffffffffffff8111156125755761257461437e565b5b60208301915083600182028301111561259157612590614392565b5b9250929050565b600082601f8301126125ad576125ac614383565b5b81356125bd848260208601612385565b91505092915050565b600082601f8301126125db576125da614383565b5b81516125eb8482602086016123c7565b91505092915050565b60008151905061260381614de3565b92915050565b60008151905061261881614dfa565b92915050565b600082601f83011261263357612632614383565b5b8151612643848260208601612409565b91505092915050565b60006040828403121561266257612661614388565b5b61266c6040613e70565b9050600082013567ffffffffffffffff81111561268c5761268b61438d565b5b61269884828501612598565b60008301525060206126ac84828501612908565b60208301525092915050565b6000604082840312156126ce576126cd614388565b5b6126d86040613e70565b9050600082015167ffffffffffffffff8111156126f8576126f761438d565b5b612704848285016125c6565b60008301525060206127188482850161291d565b60208301525092915050565b600060c0828403121561273a57612739614388565b5b61274460c0613e70565b9050600082013567ffffffffffffffff8111156127645761276361438d565b5b6127708482850161264c565b60008301525060206127848482850161295c565b60208301525060406127988482850161295c565b60408301525060606127ac8482850161295c565b60608301525060806127c084828501612932565b60808301525060a06127d484828501612932565b60a08301525092915050565b600060c082840312156127f6576127f5614388565b5b61280060c0613e70565b9050600082015167ffffffffffffffff8111156128205761281f61438d565b5b61282c848285016126b8565b600083015250602061284084828501612971565b602083015250604061285484828501612971565b604083015250606061286884828501612971565b606083015250608061287c84828501612947565b60808301525060a061289084828501612947565b60a08301525092915050565b6000604082840312156128b2576128b1614388565b5b6128bc6040613e70565b905060006128cc84828501612503565b600083015250602082013567ffffffffffffffff8111156128f0576128ef61438d565b5b6128fc84828501612724565b60208301525092915050565b60008135905061291781614e11565b92915050565b60008151905061292c81614e11565b92915050565b60008135905061294181614e28565b92915050565b60008151905061295681614e28565b92915050565b60008135905061296b81614e3f565b92915050565b60008151905061298081614e3f565b92915050565b60006020828403121561299c5761299b6143a1565b5b600082015167ffffffffffffffff8111156129ba576129b961439c565b5b6129c68482850161244b565b91505092915050565b6000602082840312156129e5576129e46143a1565b5b600082015167ffffffffffffffff811115612a0357612a0261439c565b5b612a0f84828501612479565b91505092915050565b600060208284031215612a2e57612a2d6143a1565b5b600082015167ffffffffffffffff811115612a4c57612a4b61439c565b5b612a58848285016124a7565b91505092915050565b600060208284031215612a7757612a766143a1565b5b600082015167ffffffffffffffff811115612a9557612a9461439c565b5b612aa1848285016124d5565b91505092915050565b600060208284031215612ac057612abf6143a1565b5b6000612ace84828501612518565b91505092915050565b600060208284031215612aed57612aec6143a1565b5b6000612afb8482850161252d565b91505092915050565b60008060208385031215612b1b57612b1a6143a1565b5b600083013567ffffffffffffffff811115612b3957612b3861439c565b5b612b4585828601612542565b92509250509250929050565b600060208284031215612b6757612b666143a1565b5b600082015167ffffffffffffffff811115612b8557612b8461439c565b5b612b91848285016125c6565b91505092915050565b600060208284031215612bb057612baf6143a1565b5b6000612bbe848285016125f4565b91505092915050565b600060208284031215612bdd57612bdc6143a1565b5b6000612beb84828501612609565b91505092915050565b600060208284031215612c0a57612c096143a1565b5b600082015167ffffffffffffffff811115612c2857612c2761439c565b5b612c348482850161261e565b91505092915050565b600060208284031215612c5357612c526143a1565b5b600082013567ffffffffffffffff811115612c7157612c7061439c565b5b612c7d84828501612724565b91505092915050565b600060208284031215612c9c57612c9b6143a1565b5b600082015167ffffffffffffffff811115612cba57612cb961439c565b5b612cc6848285016127e0565b91505092915050565b600060208284031215612ce557612ce46143a1565b5b600082013567ffffffffffffffff811115612d0357612d0261439c565b5b612d0f8482850161289c565b91505092915050565b600060208284031215612d2e57612d2d6143a1565b5b6000612d3c84828501612932565b91505092915050565b600060208284031215612d5b57612d5a6143a1565b5b6000612d6984828501612947565b91505092915050565b6000612d7e838361301a565b60208301905092915050565b6000612d968383613038565b60208301905092915050565b6000612dae8383613080565b905092915050565b6000612dc2838361375d565b60208301905092915050565b6000612dd982613fe7565b612de3818561405d565b9350612dee83613fa7565b8060005b83811015612e1f578151612e068882612d72565b9750612e1183614029565b925050600181019050612df2565b5085935050505092915050565b6000612e3782613ff2565b612e41818561406e565b9350612e4c83613fb7565b8060005b83811015612e7d578151612e648882612d8a565b9750612e6f83614036565b925050600181019050612e50565b5085935050505092915050565b6000612e9582613ffd565b612e9f818561407f565b935083602082028501612eb185613fc7565b8060005b85811015612eed5784840389528151612ece8582612da2565b9450612ed983614043565b925060208a01995050600181019050612eb5565b50829750879550505050505092915050565b6000612f0a82614008565b612f148185614090565b9350612f1f83613fd7565b8060005b83811015612f50578151612f378882612db6565b9750612f4283614050565b925050600181019050612f23565b5085935050505092915050565b612f6681614169565b82525050565b612f7581614169565b82525050565b612f8481614175565b82525050565b6000612f9582614013565b612f9f81856140a1565b9350612faf8185602086016141fe565b612fb8816143a6565b840191505092915050565b6000612fce82614013565b612fd881856140b2565b9350612fe88185602086016141fe565b612ff1816143a6565b840191505092915050565b613005816141dd565b82525050565b61301481614192565b82525050565b61302381614192565b82525050565b6130328161419f565b82525050565b6130418161419f565b82525050565b60006130528261401e565b61305c81856140d4565b935061306c8185602086016141fe565b613075816143a6565b840191505092915050565b600061308b8261401e565b61309581856140e5565b93506130a58185602086016141fe565b6130ae816143a6565b840191505092915050565b60006130c48261401e565b6130ce81856140f6565b93506130de8185602086016141fe565b80840191505092915050565b60006130f76036836140f6565b9150613102826143b7565b603682019050919050565b600061311a6017836140f6565b915061312582614406565b601782019050919050565b600061313d6045836140c3565b91506131488261442f565b606082019050919050565b60006131606011836140f6565b915061316b826144a4565b601182019050919050565b6000613183604a836140c3565b915061318e826144cd565b606082019050919050565b60006131a6601d836140f6565b91506131b182614542565b601d82019050919050565b60006131c96006836140f6565b91506131d48261456b565b600682019050919050565b60006131ec604b836140c3565b91506131f782614594565b606082019050919050565b600061320f601b836140f6565b915061321a82614609565b601b82019050919050565b60006132326010836140f6565b915061323d82614632565b601082019050919050565b6000613255602c836140f6565b91506132608261465b565b602c82019050919050565b60006132786048836140c3565b9150613283826146aa565b606082019050919050565b600061329b600c836140f6565b91506132a68261471f565b600c82019050919050565b60006132be6001836140f6565b91506132c982614748565b600182019050919050565b60006132e16006836140f6565b91506132ec82614771565b600682019050919050565b6000613304600f836140f6565b915061330f8261479a565b600f82019050919050565b60006133276048836140c3565b9150613332826147c3565b606082019050919050565b600061334a6010836140f6565b915061335582614838565b601082019050919050565b600061336d604a836140c3565b915061337882614861565b606082019050919050565b6000613390604a836140c3565b915061339b826148d6565b606082019050919050565b60006133b36021836140f6565b91506133be8261494b565b602182019050919050565b60006133d66047836140c3565b91506133e18261499a565b606082019050919050565b60006133f96048836140c3565b915061340482614a0f565b606082019050919050565b600061341c601a836140f6565b915061342782614a84565b601a82019050919050565b600061343f6024836140f6565b915061344a82614aad565b602482019050919050565b60006134626047836140c3565b915061346d82614afc565b606082019050919050565b6000613485601c836140f6565b915061349082614b71565b601c82019050919050565b60006134a8601a836140f6565b91506134b382614b9a565b601a82019050919050565b60006134cb6046836140c3565b91506134d682614bc3565b606082019050919050565b60006134ee601d836140f6565b91506134f982614c38565b601d82019050919050565b6000613511600a836140f6565b915061351c82614c61565b600a82019050919050565b60006135346049836140c3565b915061353f82614c8a565b606082019050919050565b60006135576028836140f6565b915061356282614cff565b602882019050919050565b600061357a6008836140f6565b915061358582614d4e565b600882019050919050565b600061359d6008836140f6565b91506135a882614d77565b600882019050919050565b600060408301600083015184820360008601526135d08282612fc3565b91505060208301516135e5602086018261373f565b508091505092915050565b600060c083016000830151848203600086015261360d82826135b3565b9150506020830151613622602086018261376c565b506040830151613635604086018261376c565b506060830151613648606086018261376c565b50608083015161365b608086018261375d565b5060a083015161366e60a086018261375d565b508091505092915050565b600060c083016000830151848203600086015261369682826135b3565b91505060208301516136ab602086018261376c565b5060408301516136be604086018261376c565b5060608301516136d1606086018261376c565b5060808301516136e4608086018261375d565b5060a08301516136f760a086018261375d565b508091505092915050565b600060408301600083015161371a6000860182612f6c565b50602083015184820360208601526137328282613679565b9150508091505092915050565b613748816141ac565b82525050565b613757816141bc565b82525050565b613766816141bc565b82525050565b613775816141d0565b82525050565b600061378682613153565b915061379282846130b9565b915061379d826132b1565b915081905092915050565b60006137b382613199565b91506137bf82876130b9565b91506137ca8261333d565b91506137d682866130b9565b91506137e18261328e565b91506137ed82856130b9565b91506137f8826132d4565b915061380482846130b9565b915061380f826131bc565b915081905095945050505050565b600061382882613225565b915061383482876130b9565b915061383f8261333d565b915061384b82866130b9565b91506138568261328e565b915061386282856130b9565b915061386d826132d4565b915061387982846130b9565b91506138848261310d565b915081905095945050505050565b600061389d826132f7565b91506138a982846130b9565b91506138b482613202565b915081905092915050565b60006138ca8261340f565b91506138d682846130b9565b91506138e18261349b565b915081905092915050565b60006138f78261340f565b915061390382846130b9565b915061390e826134e1565b915081905092915050565b600061392482613432565b915061393082876130b9565b915061393b8261333d565b915061394782866130b9565b91506139528261328e565b915061395e82856130b9565b9150613969826132d4565b915061397582846130b9565b9150613980826131bc565b915081905095945050505050565b600061399982613478565b91506139a582876130b9565b91506139b08261333d565b91506139bc82866130b9565b91506139c78261328e565b91506139d382856130b9565b91506139de826132d4565b91506139ea82846130b9565b91506139f5826131bc565b915081905095945050505050565b6000613a0e8261354a565b9150613a1a82846130b9565b9150613a25826132b1565b915081905092915050565b6000613a3b8261356d565b9150613a4782866130b9565b9150613a5282613504565b9150613a5e82856130b9565b9150613a69826133a6565b9150613a7582846130b9565b9150613a80826132b1565b9150819050949350505050565b6000613a9882613590565b9150613aa482876130b9565b9150613aaf826130ea565b9150613abb82866130b9565b9150613ac782856130b9565b9150613ad382846130b9565b915081905095945050505050565b6000613aec82613590565b9150613af882846130b9565b9150613b0382613248565b915081905092915050565b60006020820190508181036000830152613b288184612dce565b905092915050565b60006020820190508181036000830152613b4a8184612e2c565b905092915050565b60006020820190508181036000830152613b6c8184612e8a565b905092915050565b60006020820190508181036000830152613b8e8184612eff565b905092915050565b6000602082019050613bab6000830184612f5d565b92915050565b6000602082019050613bc66000830184612f7b565b92915050565b60006020820190508181036000830152613be68184612f8a565b905092915050565b6000602082019050613c036000830184612ffc565b92915050565b6000604082019050613c1e6000830185612ffc565b8181036020830152613c308184613047565b90509392505050565b6000602082019050613c4e600083018461300b565b92915050565b6000602082019050613c696000830184613029565b92915050565b60006020820190508181036000830152613c898184613047565b905092915050565b60006020820190508181036000830152613caa81613130565b9050919050565b60006020820190508181036000830152613cca81613176565b9050919050565b60006020820190508181036000830152613cea816131df565b9050919050565b60006020820190508181036000830152613d0a8161326b565b9050919050565b60006020820190508181036000830152613d2a8161331a565b9050919050565b60006020820190508181036000830152613d4a81613360565b9050919050565b60006020820190508181036000830152613d6a81613383565b9050919050565b60006020820190508181036000830152613d8a816133c9565b9050919050565b60006020820190508181036000830152613daa816133ec565b9050919050565b60006020820190508181036000830152613dca81613455565b9050919050565b60006020820190508181036000830152613dea816134be565b9050919050565b60006020820190508181036000830152613e0a81613527565b9050919050565b60006020820190508181036000830152613e2b81846135f0565b905092915050565b60006020820190508181036000830152613e4d8184613702565b905092915050565b6000602082019050613e6a600083018461374e565b92915050565b6000613e7a613e8b565b9050613e868282614231565b919050565b6000604051905090565b600067ffffffffffffffff821115613eb057613eaf61434f565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613edc57613edb61434f565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613f0857613f0761434f565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613f3457613f3361434f565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613f6057613f5f61434f565b5b613f69826143a6565b9050602081019050919050565b600067ffffffffffffffff821115613f9157613f9061434f565b5b613f9a826143a6565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061410c826141d0565b9150614117836141d0565b92508260ff0382111561412d5761412c614293565b5b828201905092915050565b6000614143826141bc565b915061414e836141bc565b92508261415e5761415d6142c2565b5b828204905092915050565b60008115159050919050565b6000819050919050565b600081905061418d82614da0565b919050565b600081600f0b9050919050565b60008160030b9050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b60006141e88261417f565b9050919050565b82818337600083830152505050565b60005b8381101561421c578082015181840152602081019050614201565b8381111561422b576000848401525b50505050565b61423a826143a6565b810181811067ffffffffffffffff821117156142595761425861434f565b5b80604052505050565b600061426d826141bc565b9150614278836141bc565b925082614288576142876142c2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f20636f756c64206e6f74206265207265747269657665642e204661696c65642060008201527f776974682048545450206572726f7220636f64653a2000000000000000000000602082015250565b7f207374616765206973206e6f7420737570706f72746564000000000000000000600082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206260008201527f797465732076616c75652066726f6d206572726f726564205769746e65742e5260208201527f6573756c74000000000000000000000000000000000000000000000000000000604082015250565b7f556e6b6e6f776e206572726f7220283078000000000000000000000000000000600082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f696e743132385b5d602076616c75652066726f6d206572726f7265642057697460208201527f6e65742e526573756c7400000000000000000000000000000000000000000000604082015250565b7f556e646572666c6f77206174206f70657261746f7220636f6465203078000000600082015250565b7f2073746167650000000000000000000000000000000000000000000000000000600082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f666978656431365b5d602076616c75652066726f6d206572726f72656420576960208201527f746e65742e526573756c74000000000000000000000000000000000000000000604082015250565b7f20776173206e6f7420612076616c69642043424f522076616c75650000000000600082015250565b7f4f70657261746f7220636f646520307800000000000000000000000000000000600082015250565b7f20636f756c64206e6f742062652072657472696576656420626563617573652060008201527f6f6620612074696d656f75740000000000000000000000000000000000000000602082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f696e74313238602076616c75652066726f6d206572726f726564205769746e6560208201527f742e526573756c74000000000000000000000000000000000000000000000000604082015250565b7f20696e2073637269707420230000000000000000000000000000000000000000600082015250565b7f2900000000000000000000000000000000000000000000000000000000000000600082015250565b7f2066726f6d200000000000000000000000000000000000000000000000000000600082015250565b7f536f757263652073637269707420230000000000000000000000000000000000600082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f75696e743634602076616c75652066726f6d206572726f726564205769746e6560208201527f742e526573756c74000000000000000000000000000000000000000000000000604082015250565b7f20666f756e642061742063616c6c202300000000000000000000000000000000600082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f75696e7436345b5d602076616c75652066726f6d206572726f7265642057697460208201527f6e65742e526573756c7400000000000000000000000000000000000000000000604082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f737472696e675b5d602076616c75652066726f6d206572726f7265642057697460208201527f6e65742e526573756c7400000000000000000000000000000000000000000000604082015250565b7f20737461676520636f6e7461696e656420746f6f206d616e792063616c6c732060008201527f2800000000000000000000000000000000000000000000000000000000000000602082015250565b7f5769746e65745061727365724c69623a20747269656420746f2072656164206260008201527f7974657333322076616c75652066726f6d206572726f726564205769746e657460208201527f2e526573756c7400000000000000000000000000000000000000000000000000604082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f737472696e67602076616c75652066726f6d206572726f726564205769746e6560208201527f742e526573756c74000000000000000000000000000000000000000000000000604082015250565b7f5468652043424f522076616c756520696e207363726970742023000000000000600082015250565b7f4469766973696f6e206279207a65726f206174206f70657261746f7220636f6460008201527f6520307800000000000000000000000000000000000000000000000000000000602082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206560008201527f72726f7220636f64652066726f6d207375636365737366756c205769746e657460208201527f2e526573756c7400000000000000000000000000000000000000000000000000604082015250565b7f4f766572666c6f77206174206f70657261746f7220636f646520307800000000600082015250565b7f20776173206e6f7420616e204172726179206f662063616c6c73000000000000600082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f626f6f6c602076616c75652066726f6d206572726f726564205769746e65742e60208201527f526573756c740000000000000000000000000000000000000000000000000000604082015250565b7f20776173206e6f7420612076616c696420446174612052657175657374000000600082015250565b7f2066726f6d207468652000000000000000000000000000000000000000000000600082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f66697865643136602076616c75652066726f6d206572726f726564205769746e60208201527f65742e526573756c740000000000000000000000000000000000000000000000604082015250565b7f546865207265717565737420636f6e7461696e656420746f6f206d616e79207360008201527f6f75726365732028000000000000000000000000000000000000000000000000602082015250565b7f5363726970742023000000000000000000000000000000000000000000000000600082015250565b7f536f757263652023000000000000000000000000000000000000000000000000600082015250565b6101008110614db257614db16142f1565b5b50565b614dbe81614169565b8114614dc957600080fd5b50565b614dd581614175565b8114614de057600080fd5b50565b614dec81614192565b8114614df757600080fd5b50565b614e038161419f565b8114614e0e57600080fd5b50565b614e1a816141ac565b8114614e2557600080fd5b50565b614e31816141bc565b8114614e3c57600080fd5b50565b614e48816141d0565b8114614e5357600080fd5b5056fe54686520737472756374757265206f6620746865207265717565737420697320696e76616c696420616e642069742063616e6e6f7420626520706172736564546865207265717565737420726573756c74206c656e677468206578636565647320612062726964676520636f6e747261637420646566696e6564206c696d6974546865207265717565737420686173206265656e2072656a65637465642062792074686520627269646765206e6f64652064756520746f20706f6f7220696e63656e7469766573a26469706673582212207c84347b582e34d3c229ca790843f11ad8ed7d0539a9ec821d76a66dc1e0331064736f6c63430008070033",
  "deployedBytecode": "0x730000000000000000000000000000000000000000301460806040526004361061012b5760003560e01c8063a1d45d56116100b7578063d45d097d1161007b578063d45d097d146103d1578063d8868db614610401578063e99e47f314610431578063f417daf514610461578063fc853c37146104915761012b565b8063a1d45d56146102e1578063a2e8765514610311578063abf82f4c14610341578063c71db52114610371578063cb5371c0146103a15761012b565b80632d26b9e2116100fe5780632d26b9e2146101f05780636646c119146102205780638233f9b3146102505780638cc5eb5414610280578063a1b90891146102b15761012b565b80630879730d1461013057806308efc09714610160578063130283ee14610190578063147e5c8f146101c0575b600080fd5b61014a60048036038101906101459190612ccf565b6104c1565b6040516101579190613b74565b60405180910390f35b61017a60048036038101906101759190612ccf565b6105a1565b6040516101879190613b30565b60405180910390f35b6101aa60048036038101906101a59190612c3d565b610680565b6040516101b79190613e33565b60405180910390f35b6101da60048036038101906101d59190612ccf565b6106be565b6040516101e79190613b74565b60405180910390f35b61020a60048036038101906102059190612ccf565b61079d565b6040516102179190613b52565b60405180910390f35b61023a60048036038101906102359190612ccf565b61087c565b6040516102479190613b96565b60405180910390f35b61026a60048036038101906102659190612ccf565b61088a565b6040516102779190613e55565b60405180910390f35b61029a60048036038101906102959190612ccf565b610964565b6040516102a8929190613c09565b60405180910390f35b6102cb60048036038101906102c69190612ccf565b611390565b6040516102d89190613bcc565b60405180910390f35b6102fb60048036038101906102f69190612ccf565b61146f565b6040516103089190613b96565b60405180910390f35b61032b60048036038101906103269190612ccf565b61147e565b6040516103389190613bb1565b60405180910390f35b61035b60048036038101906103569190612ccf565b611558565b6040516103689190613b96565b60405180910390f35b61038b60048036038101906103869190612ccf565b611632565b6040516103989190613c39565b60405180910390f35b6103bb60048036038101906103b69190612d18565b61170c565b6040516103c89190613c6f565b60405180910390f35b6103eb60048036038101906103e69190612ccf565b61183c565b6040516103f89190613bee565b60405180910390f35b61041b60048036038101906104169190612ccf565b61188b565b6040516104289190613c54565b60405180910390f35b61044b60048036038101906104469190612b04565b611965565b6040516104589190613e33565b60405180910390f35b61047b60048036038101906104769190612ccf565b611a55565b6040516104889190613c6f565b60405180910390f35b6104ab60048036038101906104a69190612ccf565b611b34565b6040516104b89190613b0e565b60405180910390f35b6060816000015115610508576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104ff90613db1565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__63f8a597d390916040518263ffffffff1660e01b81526004016105459190613e11565b60006040518083038186803b15801561055d57600080fd5b505af4158015610571573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061059a9190612a61565b9050919050565b606081600001516105e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105de90613cd1565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__63531f4ba790916040518263ffffffff1660e01b81526004016106249190613e11565b60006040518083038186803b15801561063c57600080fd5b505af4158015610650573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061067991906129cf565b9050919050565b61068861210c565b600060278360a0015167ffffffffffffffff16141590506040518060400160405280821515815260200184815250915050919050565b60608160000151610704576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106fb90613d31565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__63f8a597d390916040518263ffffffff1660e01b81526004016107419190613e11565b60006040518083038186803b15801561075957600080fd5b505af415801561076d573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906107969190612a61565b9050919050565b606081600001516107e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107da90613d51565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__63c5e88ff290916040518263ffffffff1660e01b81526004016108209190613e11565b60006040518083038186803b15801561083857600080fd5b505af415801561084c573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906108759190612a18565b9050919050565b600081600001519050919050565b600081600001516108d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c790613d11565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__637a8acab190916040518263ffffffff1660e01b815260040161090d9190613e11565b60206040518083038186803b15801561092557600080fd5b505af4158015610939573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095d9190612d45565b9050919050565b600060606000610973846104c1565b90506000815114156109c15760006040518060400160405280601d81526020017f556e6b6e6f776e206572726f7220286e6f206572726f7220636f646529000000815250925092505061138b565b60006109e7826000815181106109da576109d9614320565b5b6020026020010151611c13565b90506060600160ff8111156109ff576109fe6142f1565b5b8260ff811115610a1257610a116142f1565b5b148015610a2157506002835110155b15610a7057610a4a83600181518110610a3d57610a3c614320565b5b6020026020010151611c39565b604051602001610a5a9190613892565b6040516020818303038152906040529050611381565b600260ff811115610a8457610a836142f1565b5b8260ff811115610a9757610a966142f1565b5b148015610aa657506002835110155b15610af557610acf83600181518110610ac257610ac1614320565b5b6020026020010151611c39565b604051602001610adf91906138bf565b6040516020818303038152906040529050611380565b600360ff811115610b0957610b086142f1565b5b8260ff811115610b1c57610b1b6142f1565b5b148015610b2b57506002835110155b15610b7a57610b5483600181518110610b4757610b46614320565b5b6020026020010151611c39565b604051602001610b6491906138ec565b604051602081830303815290604052905061137f565b601060ff811115610b8e57610b8d6142f1565b5b8260ff811115610ba157610ba06142f1565b5b148015610bb057506002835110155b15610bff57610bd983600181518110610bcc57610bcb614320565b5b6020026020010151611c39565b604051602001610be99190613a03565b604051602081830303815290604052905061137e565b601160ff811115610c1357610c126142f1565b5b8260ff811115610c2657610c256142f1565b5b148015610c3557506004835110155b15610cce57610c5e83600281518110610c5157610c50614320565b5b6020026020010151611c39565b610c8284600181518110610c7557610c74614320565b5b602002602001015161170c565b610ca685600381518110610c9957610c98614320565b5b6020026020010151611c39565b604051602001610cb893929190613a30565b604051602081830303815290604052905061137d565b602060ff811115610ce257610ce16142f1565b5b8260ff811115610cf557610cf46142f1565b5b148015610d0457506005835110155b15610dc257610d2d83600481518110610d2057610d1f614320565b5b6020026020010151611fad565b610d5184600381518110610d4457610d43614320565b5b6020026020010151611c39565b610d7585600281518110610d6857610d67614320565b5b6020026020010151611c39565b610d9986600181518110610d8c57610d8b614320565b5b602002602001015161170c565b604051602001610dac949392919061381d565b604051602081830303815290604052905061137c565b603060ff811115610dd657610dd56142f1565b5b8260ff811115610de957610de86142f1565b5b148015610df857506003835110155b15610ee657610e2183600181518110610e1457610e13614320565b5b6020026020010151611c39565b610e51606485600281518110610e3a57610e39614320565b5b6020026020010151610e4c9190614138565b611c39565b610e8d600a606487600281518110610e6c57610e6b614320565b5b6020026020010151610e7e9190614262565b610e889190614138565b611c39565b610ebd600a87600281518110610ea657610ea5614320565b5b6020026020010151610eb89190614262565b611c39565b604051602001610ed09493929190613a8d565b604051602081830303815290604052905061137b565b603160ff811115610efa57610ef96142f1565b5b8260ff811115610f0d57610f0c6142f1565b5b148015610f1c57506002835110155b15610f6b57610f4583600181518110610f3857610f37614320565b5b6020026020010151611c39565b604051602001610f559190613ae1565b604051602081830303815290604052905061137a565b604060ff811115610f7f57610f7e6142f1565b5b8260ff811115610f9257610f916142f1565b5b148015610fa157506005835110155b1561105f57610fca83600481518110610fbd57610fbc614320565b5b6020026020010151611fad565b610fee84600381518110610fe157610fe0614320565b5b6020026020010151611c39565b6110128560028151811061100557611004614320565b5b6020026020010151611c39565b6110368660018151811061102957611028614320565b5b602002602001015161170c565b60405160200161104994939291906137a8565b6040516020818303038152906040529050611379565b604160ff811115611073576110726142f1565b5b8260ff811115611086576110856142f1565b5b14801561109557506005835110155b15611153576110be836004815181106110b1576110b0614320565b5b6020026020010151611fad565b6110e2846003815181106110d5576110d4614320565b5b6020026020010151611c39565b611106856002815181106110f9576110f8614320565b5b6020026020010151611c39565b61112a8660018151811061111d5761111c614320565b5b602002602001015161170c565b60405160200161113d949392919061398e565b6040516020818303038152906040529050611378565b604260ff811115611167576111666142f1565b5b8260ff81111561117a576111796142f1565b5b14801561118957506005835110155b15611247576111b2836004815181106111a5576111a4614320565b5b6020026020010151611fad565b6111d6846003815181106111c9576111c8614320565b5b6020026020010151611c39565b6111fa856002815181106111ed576111ec614320565b5b6020026020010151611c39565b61121e8660018151811061121157611210614320565b5b602002602001015161170c565b6040516020016112319493929190613919565b6040516020818303038152906040529050611377565b60e060ff81111561125b5761125a6142f1565b5b8260ff81111561126e5761126d6142f1565b5b1415611294576040518060600160405280603f8152602001614e57603f91399050611376565b60e160ff8111156112a8576112a76142f1565b5b8260ff8111156112bb576112ba6142f1565b5b14156112e157604051806080016040528060478152602001614ed7604791399050611375565b60e260ff8111156112f5576112f46142f1565b5b8260ff811115611308576113076142f1565b5b141561132e57604051806080016040528060418152602001614e96604191399050611374565b6113528360008151811061134557611344614320565b5b6020026020010151611fad565b604051602001611362919061377b565b60405160208183030381529060405290505b5b5b5b5b5b5b5b5b5b5b5b5b5b8181945094505050505b915091565b606081600001516113d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cd90613c91565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__63bb6ef6cf90916040518263ffffffff1660e01b81526004016114139190613e11565b60006040518083038186803b15801561142b57600080fd5b505af415801561143f573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f820116820180604052508101906114689190612b51565b9050919050565b60008160000151159050919050565b600081600001516114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb90613d71565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__6308c05c3390916040518263ffffffff1660e01b81526004016115019190613e11565b60206040518083038186803b15801561151957600080fd5b505af415801561152d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115519190612ad7565b9050919050565b6000816000015161159e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159590613dd1565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__639eee60ca90916040518263ffffffff1660e01b81526004016115db9190613e11565b60206040518083038186803b1580156115f357600080fd5b505af4158015611607573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061162b9190612aaa565b9050919050565b60008160000151611678576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161166f90613cf1565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__6394863ea490916040518263ffffffff1660e01b81526004016116b59190613e11565b60206040518083038186803b1580156116cd57600080fd5b505af41580156116e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117059190612b9a565b9050919050565b606060008267ffffffffffffffff16141561175e576040518060400160405280600981526020017f72657472696576616c00000000000000000000000000000000000000000000008152509050611837565b60018267ffffffffffffffff1614156117ae576040518060400160405280600b81526020017f6167677265676174696f6e0000000000000000000000000000000000000000008152509050611837565b60028267ffffffffffffffff1614156117fe576040518060400160405280600581526020017f74616c6c790000000000000000000000000000000000000000000000000000008152509050611837565b6040518060400160405280600781526020017f756e6b6e6f776e0000000000000000000000000000000000000000000000000081525090505b919050565b600080611848836104c1565b905060008151141561185e576000915050611886565b6118828160008151811061187557611874614320565b5b6020026020010151611c13565b9150505b919050565b600081600001516118d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c890613df1565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__638138799a90916040518263ffffffff1660e01b815260040161190e9190613e11565b60206040518083038186803b15801561192657600080fd5b505af415801561193a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061195e9190612bc7565b9050919050565b61196d61210c565b600083838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505073__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__63dfca5d3490916040518263ffffffff1660e01b81526004016119ec9190613bcc565b60006040518083038186803b158015611a0457600080fd5b505af4158015611a18573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611a419190612c86565b9050611a4c81610680565b91505092915050565b60608160000151611a9b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9290613d91565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__63e67c5bd190916040518263ffffffff1660e01b8152600401611ad89190613e11565b60006040518083038186803b158015611af057600080fd5b505af4158015611b04573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611b2d9190612bf4565b9050919050565b60608160000151611b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b7190613cb1565b60405180910390fd5b816020015173__$5e1c92a0c8bd25d9fa2d358c0bb6bbd582$__633380d81690916040518263ffffffff1660e01b8152600401611bb79190613e11565b60006040518083038186803b158015611bcf57600080fd5b505af4158015611be3573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611c0c9190612986565b9050919050565b60008167ffffffffffffffff1660ff811115611c3257611c316142f1565b5b9050919050565b6060600a8267ffffffffffffffff161015611cfc576000600167ffffffffffffffff811115611c6b57611c6a61434f565b5b6040519080825280601f01601f191660200182016040528015611c9d5781602001600182028036833780820191505090505b509050603083611cad9190614101565b60f81b81600081518110611cc457611cc3614320565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080915050611fa8565b60648267ffffffffffffffff161015611e28576000600267ffffffffffffffff811115611d2c57611d2b61434f565b5b6040519080825280601f01601f191660200182016040528015611d5e5781602001600182028036833780820191505090505b5090506030600a84611d709190614138565b611d7a9190614101565b60f81b81600081518110611d9157611d90614320565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506030600a84611dcf9190614262565b611dd99190614101565b60f81b81600181518110611df057611def614320565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535080915050611fa8565b6000600367ffffffffffffffff811115611e4557611e4461434f565b5b6040519080825280601f01601f191660200182016040528015611e775781602001600182028036833780820191505090505b5090506030606484611e899190614138565b611e939190614101565b60f81b81600081518110611eaa57611ea9614320565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506030600a606485611eea9190614262565b611ef49190614138565b611efe9190614101565b60f81b81600181518110611f1557611f14614320565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506030600a84611f539190614262565b611f5d9190614101565b60f81b81600281518110611f7457611f73614320565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350809150505b919050565b60606000600267ffffffffffffffff811115611fcc57611fcb61434f565b5b6040519080825280601f01601f191660200182016040528015611ffe5781602001600182028036833780820191505090505b509050600060306010856120129190614138565b61201c9190614101565b90506000603060108661202f9190614262565b6120399190614101565b905060398260ff161115612057576007826120549190614101565b91505b60398160ff161115612073576007816120709190614101565b90505b8160f81b8360008151811061208b5761208a614320565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508060f81b836001815181106120d2576120d1614320565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350829350505050919050565b604051806040016040528060001515815260200161212861212e565b81525090565b6040518060c00160405280612141612187565b8152602001600060ff168152602001600060ff168152602001600060ff168152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681525090565b604051806040016040528060608152602001600063ffffffff1681525090565b60006121ba6121b584613e95565b613e70565b905080838252602082019050828560208602820111156121dd576121dc614392565b5b60005b8581101561220d57816121f388826125f4565b8452602084019350602083019250506001810190506121e0565b5050509392505050565b600061222a61222584613ec1565b613e70565b9050808382526020820190508285602086028201111561224d5761224c614392565b5b60005b8581101561227d57816122638882612609565b845260208401935060208301925050600181019050612250565b5050509392505050565b600061229a61229584613eed565b613e70565b905080838252602082019050828560208602820111156122bd576122bc614392565b5b60005b8581101561230b57815167ffffffffffffffff8111156122e3576122e2614383565b5b8086016122f0898261261e565b855260208501945060208401935050506001810190506122c0565b5050509392505050565b600061232861232384613f19565b613e70565b9050808382526020820190508285602086028201111561234b5761234a614392565b5b60005b8581101561237b57816123618882612947565b84526020840193506020830192505060018101905061234e565b5050509392505050565b600061239861239384613f45565b613e70565b9050828152602081018484840111156123b4576123b3614397565b5b6123bf8482856141ef565b509392505050565b60006123da6123d584613f45565b613e70565b9050828152602081018484840111156123f6576123f5614397565b5b6124018482856141fe565b509392505050565b600061241c61241784613f76565b613e70565b90508281526020810184848401111561243857612437614397565b5b6124438482856141fe565b509392505050565b600082601f8301126124605761245f614383565b5b81516124708482602086016121a7565b91505092915050565b600082601f83011261248e5761248d614383565b5b815161249e848260208601612217565b91505092915050565b600082601f8301126124bc576124bb614383565b5b81516124cc848260208601612287565b91505092915050565b600082601f8301126124ea576124e9614383565b5b81516124fa848260208601612315565b91505092915050565b60008135905061251281614db5565b92915050565b60008151905061252781614db5565b92915050565b60008151905061253c81614dcc565b92915050565b60008083601f84011261255857612557614383565b5b8235905067ffffffffffffffff8111156125755761257461437e565b5b60208301915083600182028301111561259157612590614392565b5b9250929050565b600082601f8301126125ad576125ac614383565b5b81356125bd848260208601612385565b91505092915050565b600082601f8301126125db576125da614383565b5b81516125eb8482602086016123c7565b91505092915050565b60008151905061260381614de3565b92915050565b60008151905061261881614dfa565b92915050565b600082601f83011261263357612632614383565b5b8151612643848260208601612409565b91505092915050565b60006040828403121561266257612661614388565b5b61266c6040613e70565b9050600082013567ffffffffffffffff81111561268c5761268b61438d565b5b61269884828501612598565b60008301525060206126ac84828501612908565b60208301525092915050565b6000604082840312156126ce576126cd614388565b5b6126d86040613e70565b9050600082015167ffffffffffffffff8111156126f8576126f761438d565b5b612704848285016125c6565b60008301525060206127188482850161291d565b60208301525092915050565b600060c0828403121561273a57612739614388565b5b61274460c0613e70565b9050600082013567ffffffffffffffff8111156127645761276361438d565b5b6127708482850161264c565b60008301525060206127848482850161295c565b60208301525060406127988482850161295c565b60408301525060606127ac8482850161295c565b60608301525060806127c084828501612932565b60808301525060a06127d484828501612932565b60a08301525092915050565b600060c082840312156127f6576127f5614388565b5b61280060c0613e70565b9050600082015167ffffffffffffffff8111156128205761281f61438d565b5b61282c848285016126b8565b600083015250602061284084828501612971565b602083015250604061285484828501612971565b604083015250606061286884828501612971565b606083015250608061287c84828501612947565b60808301525060a061289084828501612947565b60a08301525092915050565b6000604082840312156128b2576128b1614388565b5b6128bc6040613e70565b905060006128cc84828501612503565b600083015250602082013567ffffffffffffffff8111156128f0576128ef61438d565b5b6128fc84828501612724565b60208301525092915050565b60008135905061291781614e11565b92915050565b60008151905061292c81614e11565b92915050565b60008135905061294181614e28565b92915050565b60008151905061295681614e28565b92915050565b60008135905061296b81614e3f565b92915050565b60008151905061298081614e3f565b92915050565b60006020828403121561299c5761299b6143a1565b5b600082015167ffffffffffffffff8111156129ba576129b961439c565b5b6129c68482850161244b565b91505092915050565b6000602082840312156129e5576129e46143a1565b5b600082015167ffffffffffffffff811115612a0357612a0261439c565b5b612a0f84828501612479565b91505092915050565b600060208284031215612a2e57612a2d6143a1565b5b600082015167ffffffffffffffff811115612a4c57612a4b61439c565b5b612a58848285016124a7565b91505092915050565b600060208284031215612a7757612a766143a1565b5b600082015167ffffffffffffffff811115612a9557612a9461439c565b5b612aa1848285016124d5565b91505092915050565b600060208284031215612ac057612abf6143a1565b5b6000612ace84828501612518565b91505092915050565b600060208284031215612aed57612aec6143a1565b5b6000612afb8482850161252d565b91505092915050565b60008060208385031215612b1b57612b1a6143a1565b5b600083013567ffffffffffffffff811115612b3957612b3861439c565b5b612b4585828601612542565b92509250509250929050565b600060208284031215612b6757612b666143a1565b5b600082015167ffffffffffffffff811115612b8557612b8461439c565b5b612b91848285016125c6565b91505092915050565b600060208284031215612bb057612baf6143a1565b5b6000612bbe848285016125f4565b91505092915050565b600060208284031215612bdd57612bdc6143a1565b5b6000612beb84828501612609565b91505092915050565b600060208284031215612c0a57612c096143a1565b5b600082015167ffffffffffffffff811115612c2857612c2761439c565b5b612c348482850161261e565b91505092915050565b600060208284031215612c5357612c526143a1565b5b600082013567ffffffffffffffff811115612c7157612c7061439c565b5b612c7d84828501612724565b91505092915050565b600060208284031215612c9c57612c9b6143a1565b5b600082015167ffffffffffffffff811115612cba57612cb961439c565b5b612cc6848285016127e0565b91505092915050565b600060208284031215612ce557612ce46143a1565b5b600082013567ffffffffffffffff811115612d0357612d0261439c565b5b612d0f8482850161289c565b91505092915050565b600060208284031215612d2e57612d2d6143a1565b5b6000612d3c84828501612932565b91505092915050565b600060208284031215612d5b57612d5a6143a1565b5b6000612d6984828501612947565b91505092915050565b6000612d7e838361301a565b60208301905092915050565b6000612d968383613038565b60208301905092915050565b6000612dae8383613080565b905092915050565b6000612dc2838361375d565b60208301905092915050565b6000612dd982613fe7565b612de3818561405d565b9350612dee83613fa7565b8060005b83811015612e1f578151612e068882612d72565b9750612e1183614029565b925050600181019050612df2565b5085935050505092915050565b6000612e3782613ff2565b612e41818561406e565b9350612e4c83613fb7565b8060005b83811015612e7d578151612e648882612d8a565b9750612e6f83614036565b925050600181019050612e50565b5085935050505092915050565b6000612e9582613ffd565b612e9f818561407f565b935083602082028501612eb185613fc7565b8060005b85811015612eed5784840389528151612ece8582612da2565b9450612ed983614043565b925060208a01995050600181019050612eb5565b50829750879550505050505092915050565b6000612f0a82614008565b612f148185614090565b9350612f1f83613fd7565b8060005b83811015612f50578151612f378882612db6565b9750612f4283614050565b925050600181019050612f23565b5085935050505092915050565b612f6681614169565b82525050565b612f7581614169565b82525050565b612f8481614175565b82525050565b6000612f9582614013565b612f9f81856140a1565b9350612faf8185602086016141fe565b612fb8816143a6565b840191505092915050565b6000612fce82614013565b612fd881856140b2565b9350612fe88185602086016141fe565b612ff1816143a6565b840191505092915050565b613005816141dd565b82525050565b61301481614192565b82525050565b61302381614192565b82525050565b6130328161419f565b82525050565b6130418161419f565b82525050565b60006130528261401e565b61305c81856140d4565b935061306c8185602086016141fe565b613075816143a6565b840191505092915050565b600061308b8261401e565b61309581856140e5565b93506130a58185602086016141fe565b6130ae816143a6565b840191505092915050565b60006130c48261401e565b6130ce81856140f6565b93506130de8185602086016141fe565b80840191505092915050565b60006130f76036836140f6565b9150613102826143b7565b603682019050919050565b600061311a6017836140f6565b915061312582614406565b601782019050919050565b600061313d6045836140c3565b91506131488261442f565b606082019050919050565b60006131606011836140f6565b915061316b826144a4565b601182019050919050565b6000613183604a836140c3565b915061318e826144cd565b606082019050919050565b60006131a6601d836140f6565b91506131b182614542565b601d82019050919050565b60006131c96006836140f6565b91506131d48261456b565b600682019050919050565b60006131ec604b836140c3565b91506131f782614594565b606082019050919050565b600061320f601b836140f6565b915061321a82614609565b601b82019050919050565b60006132326010836140f6565b915061323d82614632565b601082019050919050565b6000613255602c836140f6565b91506132608261465b565b602c82019050919050565b60006132786048836140c3565b9150613283826146aa565b606082019050919050565b600061329b600c836140f6565b91506132a68261471f565b600c82019050919050565b60006132be6001836140f6565b91506132c982614748565b600182019050919050565b60006132e16006836140f6565b91506132ec82614771565b600682019050919050565b6000613304600f836140f6565b915061330f8261479a565b600f82019050919050565b60006133276048836140c3565b9150613332826147c3565b606082019050919050565b600061334a6010836140f6565b915061335582614838565b601082019050919050565b600061336d604a836140c3565b915061337882614861565b606082019050919050565b6000613390604a836140c3565b915061339b826148d6565b606082019050919050565b60006133b36021836140f6565b91506133be8261494b565b602182019050919050565b60006133d66047836140c3565b91506133e18261499a565b606082019050919050565b60006133f96048836140c3565b915061340482614a0f565b606082019050919050565b600061341c601a836140f6565b915061342782614a84565b601a82019050919050565b600061343f6024836140f6565b915061344a82614aad565b602482019050919050565b60006134626047836140c3565b915061346d82614afc565b606082019050919050565b6000613485601c836140f6565b915061349082614b71565b601c82019050919050565b60006134a8601a836140f6565b91506134b382614b9a565b601a82019050919050565b60006134cb6046836140c3565b91506134d682614bc3565b606082019050919050565b60006134ee601d836140f6565b91506134f982614c38565b601d82019050919050565b6000613511600a836140f6565b915061351c82614c61565b600a82019050919050565b60006135346049836140c3565b915061353f82614c8a565b606082019050919050565b60006135576028836140f6565b915061356282614cff565b602882019050919050565b600061357a6008836140f6565b915061358582614d4e565b600882019050919050565b600061359d6008836140f6565b91506135a882614d77565b600882019050919050565b600060408301600083015184820360008601526135d08282612fc3565b91505060208301516135e5602086018261373f565b508091505092915050565b600060c083016000830151848203600086015261360d82826135b3565b9150506020830151613622602086018261376c565b506040830151613635604086018261376c565b506060830151613648606086018261376c565b50608083015161365b608086018261375d565b5060a083015161366e60a086018261375d565b508091505092915050565b600060c083016000830151848203600086015261369682826135b3565b91505060208301516136ab602086018261376c565b5060408301516136be604086018261376c565b5060608301516136d1606086018261376c565b5060808301516136e4608086018261375d565b5060a08301516136f760a086018261375d565b508091505092915050565b600060408301600083015161371a6000860182612f6c565b50602083015184820360208601526137328282613679565b9150508091505092915050565b613748816141ac565b82525050565b613757816141bc565b82525050565b613766816141bc565b82525050565b613775816141d0565b82525050565b600061378682613153565b915061379282846130b9565b915061379d826132b1565b915081905092915050565b60006137b382613199565b91506137bf82876130b9565b91506137ca8261333d565b91506137d682866130b9565b91506137e18261328e565b91506137ed82856130b9565b91506137f8826132d4565b915061380482846130b9565b915061380f826131bc565b915081905095945050505050565b600061382882613225565b915061383482876130b9565b915061383f8261333d565b915061384b82866130b9565b91506138568261328e565b915061386282856130b9565b915061386d826132d4565b915061387982846130b9565b91506138848261310d565b915081905095945050505050565b600061389d826132f7565b91506138a982846130b9565b91506138b482613202565b915081905092915050565b60006138ca8261340f565b91506138d682846130b9565b91506138e18261349b565b915081905092915050565b60006138f78261340f565b915061390382846130b9565b915061390e826134e1565b915081905092915050565b600061392482613432565b915061393082876130b9565b915061393b8261333d565b915061394782866130b9565b91506139528261328e565b915061395e82856130b9565b9150613969826132d4565b915061397582846130b9565b9150613980826131bc565b915081905095945050505050565b600061399982613478565b91506139a582876130b9565b91506139b08261333d565b91506139bc82866130b9565b91506139c78261328e565b91506139d382856130b9565b91506139de826132d4565b91506139ea82846130b9565b91506139f5826131bc565b915081905095945050505050565b6000613a0e8261354a565b9150613a1a82846130b9565b9150613a25826132b1565b915081905092915050565b6000613a3b8261356d565b9150613a4782866130b9565b9150613a5282613504565b9150613a5e82856130b9565b9150613a69826133a6565b9150613a7582846130b9565b9150613a80826132b1565b9150819050949350505050565b6000613a9882613590565b9150613aa482876130b9565b9150613aaf826130ea565b9150613abb82866130b9565b9150613ac782856130b9565b9150613ad382846130b9565b915081905095945050505050565b6000613aec82613590565b9150613af882846130b9565b9150613b0382613248565b915081905092915050565b60006020820190508181036000830152613b288184612dce565b905092915050565b60006020820190508181036000830152613b4a8184612e2c565b905092915050565b60006020820190508181036000830152613b6c8184612e8a565b905092915050565b60006020820190508181036000830152613b8e8184612eff565b905092915050565b6000602082019050613bab6000830184612f5d565b92915050565b6000602082019050613bc66000830184612f7b565b92915050565b60006020820190508181036000830152613be68184612f8a565b905092915050565b6000602082019050613c036000830184612ffc565b92915050565b6000604082019050613c1e6000830185612ffc565b8181036020830152613c308184613047565b90509392505050565b6000602082019050613c4e600083018461300b565b92915050565b6000602082019050613c696000830184613029565b92915050565b60006020820190508181036000830152613c898184613047565b905092915050565b60006020820190508181036000830152613caa81613130565b9050919050565b60006020820190508181036000830152613cca81613176565b9050919050565b60006020820190508181036000830152613cea816131df565b9050919050565b60006020820190508181036000830152613d0a8161326b565b9050919050565b60006020820190508181036000830152613d2a8161331a565b9050919050565b60006020820190508181036000830152613d4a81613360565b9050919050565b60006020820190508181036000830152613d6a81613383565b9050919050565b60006020820190508181036000830152613d8a816133c9565b9050919050565b60006020820190508181036000830152613daa816133ec565b9050919050565b60006020820190508181036000830152613dca81613455565b9050919050565b60006020820190508181036000830152613dea816134be565b9050919050565b60006020820190508181036000830152613e0a81613527565b9050919050565b60006020820190508181036000830152613e2b81846135f0565b905092915050565b60006020820190508181036000830152613e4d8184613702565b905092915050565b6000602082019050613e6a600083018461374e565b92915050565b6000613e7a613e8b565b9050613e868282614231565b919050565b6000604051905090565b600067ffffffffffffffff821115613eb057613eaf61434f565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613edc57613edb61434f565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613f0857613f0761434f565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613f3457613f3361434f565b5b602082029050602081019050919050565b600067ffffffffffffffff821115613f6057613f5f61434f565b5b613f69826143a6565b9050602081019050919050565b600067ffffffffffffffff821115613f9157613f9061434f565b5b613f9a826143a6565b9050602081019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061410c826141d0565b9150614117836141d0565b92508260ff0382111561412d5761412c614293565b5b828201905092915050565b6000614143826141bc565b915061414e836141bc565b92508261415e5761415d6142c2565b5b828204905092915050565b60008115159050919050565b6000819050919050565b600081905061418d82614da0565b919050565b600081600f0b9050919050565b60008160030b9050919050565b600063ffffffff82169050919050565b600067ffffffffffffffff82169050919050565b600060ff82169050919050565b60006141e88261417f565b9050919050565b82818337600083830152505050565b60005b8381101561421c578082015181840152602081019050614201565b8381111561422b576000848401525b50505050565b61423a826143a6565b810181811067ffffffffffffffff821117156142595761425861434f565b5b80604052505050565b600061426d826141bc565b9150614278836141bc565b925082614288576142876142c2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f20636f756c64206e6f74206265207265747269657665642e204661696c65642060008201527f776974682048545450206572726f7220636f64653a2000000000000000000000602082015250565b7f207374616765206973206e6f7420737570706f72746564000000000000000000600082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206260008201527f797465732076616c75652066726f6d206572726f726564205769746e65742e5260208201527f6573756c74000000000000000000000000000000000000000000000000000000604082015250565b7f556e6b6e6f776e206572726f7220283078000000000000000000000000000000600082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f696e743132385b5d602076616c75652066726f6d206572726f7265642057697460208201527f6e65742e526573756c7400000000000000000000000000000000000000000000604082015250565b7f556e646572666c6f77206174206f70657261746f7220636f6465203078000000600082015250565b7f2073746167650000000000000000000000000000000000000000000000000000600082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f666978656431365b5d602076616c75652066726f6d206572726f72656420576960208201527f746e65742e526573756c74000000000000000000000000000000000000000000604082015250565b7f20776173206e6f7420612076616c69642043424f522076616c75650000000000600082015250565b7f4f70657261746f7220636f646520307800000000000000000000000000000000600082015250565b7f20636f756c64206e6f742062652072657472696576656420626563617573652060008201527f6f6620612074696d656f75740000000000000000000000000000000000000000602082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f696e74313238602076616c75652066726f6d206572726f726564205769746e6560208201527f742e526573756c74000000000000000000000000000000000000000000000000604082015250565b7f20696e2073637269707420230000000000000000000000000000000000000000600082015250565b7f2900000000000000000000000000000000000000000000000000000000000000600082015250565b7f2066726f6d200000000000000000000000000000000000000000000000000000600082015250565b7f536f757263652073637269707420230000000000000000000000000000000000600082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f75696e743634602076616c75652066726f6d206572726f726564205769746e6560208201527f742e526573756c74000000000000000000000000000000000000000000000000604082015250565b7f20666f756e642061742063616c6c202300000000000000000000000000000000600082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f75696e7436345b5d602076616c75652066726f6d206572726f7265642057697460208201527f6e65742e526573756c7400000000000000000000000000000000000000000000604082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f737472696e675b5d602076616c75652066726f6d206572726f7265642057697460208201527f6e65742e526573756c7400000000000000000000000000000000000000000000604082015250565b7f20737461676520636f6e7461696e656420746f6f206d616e792063616c6c732060008201527f2800000000000000000000000000000000000000000000000000000000000000602082015250565b7f5769746e65745061727365724c69623a20747269656420746f2072656164206260008201527f7974657333322076616c75652066726f6d206572726f726564205769746e657460208201527f2e526573756c7400000000000000000000000000000000000000000000000000604082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f737472696e67602076616c75652066726f6d206572726f726564205769746e6560208201527f742e526573756c74000000000000000000000000000000000000000000000000604082015250565b7f5468652043424f522076616c756520696e207363726970742023000000000000600082015250565b7f4469766973696f6e206279207a65726f206174206f70657261746f7220636f6460008201527f6520307800000000000000000000000000000000000000000000000000000000602082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206560008201527f72726f7220636f64652066726f6d207375636365737366756c205769746e657460208201527f2e526573756c7400000000000000000000000000000000000000000000000000604082015250565b7f4f766572666c6f77206174206f70657261746f7220636f646520307800000000600082015250565b7f20776173206e6f7420616e204172726179206f662063616c6c73000000000000600082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f626f6f6c602076616c75652066726f6d206572726f726564205769746e65742e60208201527f526573756c740000000000000000000000000000000000000000000000000000604082015250565b7f20776173206e6f7420612076616c696420446174612052657175657374000000600082015250565b7f2066726f6d207468652000000000000000000000000000000000000000000000600082015250565b7f5769746e65745061727365724c69623a20547269656420746f2072656164206060008201527f66697865643136602076616c75652066726f6d206572726f726564205769746e60208201527f65742e526573756c740000000000000000000000000000000000000000000000604082015250565b7f546865207265717565737420636f6e7461696e656420746f6f206d616e79207360008201527f6f75726365732028000000000000000000000000000000000000000000000000602082015250565b7f5363726970742023000000000000000000000000000000000000000000000000600082015250565b7f536f757263652023000000000000000000000000000000000000000000000000600082015250565b6101008110614db257614db16142f1565b5b50565b614dbe81614169565b8114614dc957600080fd5b50565b614dd581614175565b8114614de057600080fd5b50565b614dec81614192565b8114614df757600080fd5b50565b614e038161419f565b8114614e0e57600080fd5b50565b614e1a816141ac565b8114614e2557600080fd5b50565b614e31816141bc565b8114614e3c57600080fd5b50565b614e48816141d0565b8114614e5357600080fd5b5056fe54686520737472756374757265206f6620746865207265717565737420697320696e76616c696420616e642069742063616e6e6f7420626520706172736564546865207265717565737420726573756c74206c656e677468206578636565647320612062726964676520636f6e747261637420646566696e6564206c696d6974546865207265717565737420686173206265656e2072656a65637465642062792074686520627269646765206e6f64652064756520746f20706f6f7220696e63656e7469766573a26469706673582212207c84347b582e34d3c229ca790843f11ad8ed7d0539a9ec821d76a66dc1e0331064736f6c63430008070033",
  "linkReferences": {
    "witnet-solidity-bridge/contracts/libs/WitnetDecoderLib.sol": {
      "WitnetDecoderLib": [
        {
          "length": 20,
          "start": 1378
        },
        {
          "length": 20,
          "start": 1601
        },
        {
          "length": 20,
          "start": 1886
        },
        {
          "length": 20,
          "start": 2109
        },
        {
          "length": 20,
          "start": 2346
        },
        {
          "length": 20,
          "start": 5168
        },
        {
          "length": 20,
          "start": 5406
        },
        {
          "length": 20,
          "start": 5624
        },
        {
          "length": 20,
          "start": 5842
        },
        {
          "length": 20,
          "start": 6443
        },
        {
          "length": 20,
          "start": 6665
        },
        {
          "length": 20,
          "start": 6901
        },
        {
          "length": 20,
          "start": 7124
        }
      ]
    }
  },
  "deployedLinkReferences": {
    "witnet-solidity-bridge/contracts/libs/WitnetDecoderLib.sol": {
      "WitnetDecoderLib": [
        {
          "length": 20,
          "start": 1295
        },
        {
          "length": 20,
          "start": 1518
        },
        {
          "length": 20,
          "start": 1803
        },
        {
          "length": 20,
          "start": 2026
        },
        {
          "length": 20,
          "start": 2263
        },
        {
          "length": 20,
          "start": 5085
        },
        {
          "length": 20,
          "start": 5323
        },
        {
          "length": 20,
          "start": 5541
        },
        {
          "length": 20,
          "start": 5759
        },
        {
          "length": 20,
          "start": 6360
        },
        {
          "length": 20,
          "start": 6582
        },
        {
          "length": 20,
          "start": 6818
        },
        {
          "length": 20,
          "start": 7041
        }
      ]
    }
  }
}
